Lambda Calculus Equivalence and Call by name

86 Views Asked by At

I am new to lambda Calculus and wanted to understand the 2 following questions:

1) The term λx.x a b is equivalent to which of the following? 
   a. (λx.x) (a b)
   b. (((λx.x) a) b) 
   c. λx.(x (a b)) d
   d. (λx.((x a) b))

I saw the answer is d and wanted to see why this is true as I was inclined to pick a

The next asks for call by value

(λx.x) 5 + 1

If there are no parenthesis in the values would it get evaluated as 5+1? What if there were parenthesis?