caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] fixpoint
@ 2002-08-03 20:03 John Max Skaller
  2002-08-04  5:04 ` John Max Skaller
  0 siblings, 1 reply; 2+ messages in thread
From: John Max Skaller @ 2002-08-03 20:03 UTC (permalink / raw)
  To: caml-list

Excuse dumb question about lambda calculus.
I'm using a typed lambda calculus for a kinding system
(the types are TYPE, TYPE->TYPE etc).
I'm uncertain how to handle recursion though.
Example:

    list a = 1 + a * list a

or

    list = fix f . fun a. 1 + a * f a

now we need:

    list int = 1 + int * list int

or

    list int = fix x . 1 + int * x

which suggests the following reduction:

    fix f . fun x . e ==> fix z . e [f x -> z]

Well, the rule works in this case. Will it always work?

-- 
John Max Skaller, mailto:skaller@ozemail.com.au
snail:10/1 Toxteth Rd, Glebe, NSW 2037, Australia.
voice:61-2-9660-0850



-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Caml-list] fixpoint
  2002-08-03 20:03 [Caml-list] fixpoint John Max Skaller
@ 2002-08-04  5:04 ` John Max Skaller
  0 siblings, 0 replies; 2+ messages in thread
From: John Max Skaller @ 2002-08-04  5:04 UTC (permalink / raw)
  To: caml-list

John Max Skaller wrote:

Woops:

> which suggests the following reduction:
>
>    fix f . fun x . e ==> fix z . e [f x -> z]
>
> Well, the rule works in this case. Will it always work?
>
I meant:

    fix f. fun x . e ==> fun x. fix z . e [f x -> z] (* z not occuring 
in e *)

ie. the fix and fun binders swap around with the substitution.
I should also have noted that obviously this only works if it is
done at the right time, eg in

    fix g. (fun x (fun f ( f x) g) x)

the inner redex must be reduced first.

-- 
John Max Skaller, mailto:skaller@ozemail.com.au
snail:10/1 Toxteth Rd, Glebe, NSW 2037, Australia.
voice:61-2-9660-0850




-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-08-04  5:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-08-03 20:03 [Caml-list] fixpoint John Max Skaller
2002-08-04  5:04 ` John Max Skaller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).