4 ms·
With "application" they mean "function application" (aka. calling a function). But I feel you. I'm sure there is a less academic way to explain this stuff. Do
by ngruhn 1y ago
With "application" they mean "function application" (aka. calling a function).
But I feel you. I'm sure there is a less academic way to explain this stuff.
Do you know Lisp or Clojure? Then you already understand lambda calculus.
Do you know JavaScript? Then replace all those lambdas with arrow functions:
(λ x . x + 2) 1
becomes:
(x => x + 2)(1)
So lambda calculus "programs" are just a bunch of these nested immediately invoked anonymous functions. You could run that by just pasting it into the web console / NodeJS REPL.
Like Turing machines, this is a general model for computation. But it's conceptually much simpler and easier to reason about mathematically.
Each computation step comes down to rewriting the program. That's just like computing algebraic expressions on paper:
(1 + 2)x - 2x
= 3x - 2x
= x
sum up something there, multiply out here, ...
In the lambda calculus you can do the same but you have "applying a function" as a step that you can do:
(λ x . x + 2) 1
= 1 + 2
= 3
- billforsternz 1y agoThanks. Sadly I'm an old school assembly, C, C++ type. I don't know Closure or Haskell and my attempts to write Javascript always involving basically writing C in Javascript.