(λa.(λb.λc.b)) and (λa.λb.λc.b)
I was wondering if someone could explain, using mostly English, what that lambda-calculus expression is supposed to mean, and whether there is any difference between the two given above.
|
(λa.(λb.λc.b)) and (λa.λb.λc.b) I was wondering if someone could explain, using mostly English, what that lambda-calculus expression is supposed to mean, and whether there is any difference between the two given above. |
|||||||||||
|
Questions on Theoretical Computer Science Stack Exchange are expected to relate to theoretical computer science within the scope defined in the FAQ. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about closed questions here.
|
It's the same. In $λa.(λb.(λc.b))$ brackets are not mandatory because there is no other way to parse $λa.λb.λc.b$ with λ-calculus syntax: $$t ::= x \mid λx.t \mid t\,t$$ In English, your term is a function which returns a function which returns a function. It's roughly the same as a function which takes three arguments. Except that application must be done in three successive steps. (And in your case, the result is nothing more than the second argument.) |
||||
|
|