λ parser and interpreter

From

project

Oh and there was a bug in the code before just now, where


would error.

Wow! This is a terrific piece of work. I'm just beginning to work my way through reading your code, but I'm really psyched about it! By using your own EVALUATE instead of trying to make lambda expressions runnable as Snap! code, you avoid the problems I've been having about the scope of upvars.

Very cool. I like it :wink:

It's actually your code.

The Church numeral part may have come from my handout (really of course the credit goes to Alonzo Church) but you had the idea of keeping the lambda expressions as data, with an explicit EVALUATE step, rather than try to make them executable Snap! code.

Ok, the parsing was your code. I knew what to do for EVALUATE.

Well, I'm happy to be considered a partner in this great project. :~)

Ok.

[offtopic]
I'm looking at the Snap! Manual, in the section about video capture, and it still surprises me that you're that old.
[/offtopic]

I just made it work with way more characters:

Cute. There's something profoundly disturbing about using a numeral as a formal parameter, even though it's not against the rules.

I'm actually 10 years old. It's just my body that's 72.

Not really to me, though.

You looked more like 40-50.

The advantage of 72 is that I'm formally retired, so I don't have to give grades. The advantage of 40-50 is that your body doesn't hurt so much. :~/

Oh...k?

you can say youre 10 years old, just call (10 => I'm 10 years old) passing your super secret (72) value and remember from then on out 10 = 72

Yeah that's why I said

although of course in lambda calculus there's nothing special about digits. :~)

ok ok simply pass in λf.λx.f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(f(fx))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) and youre all set for youre secret life in lambda calculus world

f x? Because fx won't work there.

Ha ha! I get it now! (λ10.([I'm 10 years old]) 72) = [I'm 72 years old] (using [] as shorthand for the complicated nest of lambdas and calls that make a list).

Now he's going to yell at you again (with some justice, I guess) for calling out his trivial mistakes.

Oh and... uhhhh...