Show HN: LambdaLisp – A Lisp interpreter that runs on lambda calculus
woodrush.github.io
Show HN: LambdaLisp – A Lisp interpreter that runs on lambda calculus
1–10 of 101 posts
Re: Show HN: LambdaLisp – A Lisp interpreter that runs on lambda calculus
#2"Lisp has been described by Alan Kay as the Maxwell’s equations of software. In the same sense, I believe that lambda calculus is the particle physics of computation. LambdaLisp may therefore be a gigantic electromagnetic Lagrangian that connects the realm of human-friendly programming to the origins of the notion of computation itself."
BTW, if you have no idea what is going on here, eight years ago I took a whack at writing a gentle introduction to this same sort of thing, but done in a more half-assed way, and with a much less ambitious scope:
Re: Show HN: LambdaLisp – A Lisp interpreter that runs on lambda calculus
#3Elsewhere, Douglas Adams smiles.
Re: Show HN: LambdaLisp – A Lisp interpreter that runs on lambda calculus
#4() is nothing and (is something) What does the implementation show more beautiful than that?
Re: Show HN: LambdaLisp – A Lisp interpreter that runs on lambda calculus
#5> Here is a PDF showing its entire lambda term, which is 42 pages long: Elsewhere, Douglas Adams smiles.
Re: Show HN: LambdaLisp – A Lisp interpreter that runs on lambda calculus
#6Re: Show HN: LambdaLisp – A Lisp interpreter that runs on lambda calculus
#7I'm still reading the document, but one thing that caught my eye is the List encoding with cons and nil, which is claimed to be a Mogensen-Scott one.
Rather, cons \x\y\c. c x y is the Scott encoding of infinite lists that have no nil terminator (also known as streams) and thus only one constructor, while nil is the Scott encoding in nil-terminated lists with 2 constructors.
Thus the given encoding is some non-standard hybrid of streams and lists that helps BLC achieve its conciseness. In Wikipedia [1] it's described as
> Alternatively, with NIL := FALSE, the construct l (λh.λt.λz.deal_with_head_h_and_tail_t) (deal_with_nil) obviates the need for an explicit NULL test
Re: Show HN: LambdaLisp – A Lisp interpreter that runs on lambda calculus
#8Maybe I am stupid but what's the point in reimplementing lisp in lambda? Just to prove how beautiful simple lambda calculus is? The lambda functionality is allready in lisp. And lisp is beautiful simple! () is nothing and (is something) What does the implementation show more beautiful than that?
Re: Show HN: LambdaLisp – A Lisp interpreter that runs on lambda calculus
#9The question is what does Lisp give us as an interpretation of those foundations? Or does it admit issues that might be unhelpful? (Are macros a good thing?)
Re: Show HN: LambdaLisp – A Lisp interpreter that runs on lambda calculus
#10Lambda calculus is mathematically foundational in a way that Lisp of course isn't. The question is what does Lisp give us as an interpretation of those foundations? Or does it admit issues that might be unhelpful? (Are macros a good thing?)