[ANN] new release of LambdaMessageSend on SqueakMap

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[ANN] new release of LambdaMessageSend on SqueakMap

Stéphane Rollandin
hello list,


I just released version 8 of LambdaMessageSend, aka FunctionalTalk:

http://map.squeak.org/package/6bc04644-035c-4d47-a513-f7cde7b01bad/autoversion/8


release notes:

it is now very easy to do proper lambda calculus
(not that it is very useful, but I believe it provides a sound proof of
concept for the whole LambdaMessageSend idea).

for example the third Church numeral
L f x. f (f (f x))
can simply be constructed this way:

x := Lambda x.
f := Lambda f.
n3 := f apT: (f apT: (f apT: x)).

and then

n3 <~ (Lambda x + 1) <~ 0

will indeed return 3


more complex functions such as the predecessor operator
L n f x. n (L g h. h (g f)) (L u. x) (L u. u)
require more care but are still rather straightforward to build:

g := Lambda g.
h := Lambda h.

pred := ((((n apT: Lambda gh) apT: Lambda ux) apT: Lambda uu)
        <<@@ {
                #gh -> ((h apT: (g apT: f)) ofVariables: {g . h}).
                #ux -> (x ofVariables: {Lambda u}).
                #uu -> Lambda u
        }) ofVariables: {n . f . x}.


... see FunctionalTalkTest>>testChurchNumerals for more details



Stef