[ANN] LambdaMessageSend on SqueakMap
Alexandre Bergel
Alexandre.Bergel at cs.tcd.ie
Sun May 14 18:29:04 UTC 2006
Hello,
I like this. But where can I try it ? Squeaksource and squeakmap do
not know about it. I would like to see more about it.
> LambdaMessageSend, aka FunctionalTalk, implements a specialized
> MessageSend subclass and an associated API for functional
> programming in Squeak.
Few months ago I worked on a module calculus. I first did an
implementation in Squeak, but I had to switch for Scheme, mainly
because of the closure.
>
> you can do things like:
>
> | x y f g j |
>
> x _ Lambda x.
> y _ Lambda y.
Why do you use the term lambda to create a variable ?
> f _ ((x*x) + (y*y)) sqrt.
Why is there no term named lambda here ?
> self assert: f printString = '(((<x> * <x>) + (<y> * <y>)) sqrt)'.
> self assert: {3 . 4} ~~> f = 5.
> g := ('y' -> 0) ~>> f.
I like this mechanism of curryfication.
> self assert: g printString = '(((<x> * <x>) + 0) sqrt)' .
> self assert: 3 ~> g = 3.
>
> j := ('y' -> (Lambda z1 + Lambda z2)) ~>> f.
I did not get this one... Could you explain a bit ?
> self assert: j printString = '(((<x> * <x>) + ((<z1> + <z2>) *
> (<z1> + <z2>))) sqrt)' .
> self assert: {3 . 2 . 2} ~~> j = 5.
>
>
> see the test cases in FunctionalTalkTest for comprehensive
> documentation.
Where are they ?
> I would be interested in feedback and criticism from languages gurus.
>
> the idea here is to define a MessageSend those receiver, selector
> and arguments can themselves be MessageSend. It seems to me that we
> get this way a clean lambda calculus framework but of course I may
> be wrong.
It seems to me that, what is tricky with lambda calculus are the
evaluation strategies...
Cheers,
Alexandre
>
> what do you think ?
>
>
> Stef
>
>
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.cs.tcd.ie/Alexandre.Bergel
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
More information about the Squeak-dev
mailing list
|