4 ms·
Also lisp isn't actually based on the lambda calculus (for one thing the lamdba calculus doesn't have recursion!! (besides through the Y combinator). Lisp is a
by bodhiandpysics1 5y ago
Also lisp isn't actually based on the lambda calculus (for one thing the lamdba calculus doesn't have recursion!! (besides through the Y combinator). Lisp is also evaluated in a very different way than the lamdbda calculus. Lisp has a syntax to declare function literals which takes its name from the lambda calculus, and you can express the lambda calculus relatively cleanly in lisp (i.e. you can write lambda expressions in syntactic lisp) but that's really the only connection.
- kazinator 5y agoFor another thing, lambda calculus doesn't have quote, cons cells, symbols, or any Lisp building materials.
- bodhiandpysics1 5y agoI mean, the lamdbda calculus doesn't allow you to define a function!
- kazinator 5y agoI don't think that's true when lambda calculus is regarded as a "library" of certain objects and concepts added to mathematics. Then the assignment operator is available. You've probably seen the Y combinator given similarly to: Y = λf.(λx.f(x x))(λx.f(x x)) where this Y = business isn't part of lambda calculus per se, but it's available because this is mathematics; existing mathematics notation that doesn't conflict with lambda calculus, like being able to equate a symbol and expression, hasn't gone out the window.
- kazinator 5y agoErratum: "assignment operator" is not the best choice of words there, other than in the sense of "assign meaning" (to a hitherto unbound symbol).