0
$\begingroup$

For demonstration purposes I was wondering about some very easy to grasp LC abstractions and I came to the idea of a function that simply eats its argument, and nothing more.

If you apply λx. (Yes no lambda term after the point) to an argument the abstraction reduces to nothing.

Although this isn't very useful for computation maybe, do you think the idea itself is valid or not?


Ok thanks everyone. Although I still like to tinker with the idea in my head, I understand it's simply not an option to use this throwaway function when dealing with LC.

Every application in LC returns an expression. There are no birds in the forest of Smullyan that can not sing.

Thanks again.

$\endgroup$
3
$\begingroup$

No, $\lambda x.$ is not a syntactically valid expression. By the definition of the syntax of lamda terms,

$\lambda x.M$ is a term if $x$ is a variable and $M$ is a term.

You need a term $M$ to abstract over, and there are no empty terms. (This also means that there can be no application that reduces to "nothing". Any lambda term must consist of at least an atom (= a variable or a constant)). So $\lambda x.$ is not a term.

$\endgroup$
2
$\begingroup$

I am sorry but writing just λx. Is not usefull in any way. And it is not a function that eats his argument, it is a undefined function like writing $f(x)=$

$\endgroup$
2
$\begingroup$

Just writing $\lambda x.$ is not an LC expression. It's syntactically not correct. There are clear rules about the syntax of LC terms and in the case of a $\lambda$-expression these rules are:

If $x$ is a variable and $t$ is a LC expression, then $(\lambda x.t)$ is also an LC expression.

Note that in order to write a $\lambda$-expression, the definition requires both a variable and another LC expression.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.