* [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