Lambda Calculus Operator Priority

I have problems understanding the priorities of lambda calculus operators.

For example, the following code:

lambda xx z lambda yx y 

will be:

 lambda x. (x (z lambda y. xy)) 

or

 lambda x. ((xz) (lambda y. xy)) 

?

Even more complex examples:

 (lambda xx z) lambda yw lambda ww xyz 

where in the above example do the brackets go?

I know that a lambda application remains associative, but does lambda matter have a higher priority over applications?

+6
lambda operator-precedence lambda-calculus
source share
1 answer

The application has a higher priority than abstraction. However, the application is left-associative and the abstraction is right-associative, this leads to the following:

 lambda xx z lambda yx y 

is an

 lambda x. ( (xz) (lambda y. (xy)) ) 

and

 (lambda xx z) lambda yw lambda ww xyz 

is an

 (lambda x. (xz)) (lambda y. (w (lambda w. (((wx) y) z)))) 
+14
source share

All Articles