The first λ-calculus evaluating expression problem was very easy. The second one is similar:
Compute the value of (λx.x+1)((λy.y+2)3).
Just to make a bit more fun from it, let's solve it by writing the code in F#:
(fun x -> x + 1)((fun y -> y + 2)3)
|> printfn "%A"
And in JavaScript:
console.log((x => x + 1)((y => y + 2)(3)));
And in GO:
fmt.Println((func(x int) int { return x + 1; })((func(y int) int { return y + 2; })(3)))
Ok, In C#:
Console.WriteLine(((Func<int,int>)(x=>x+1))(((Func<int,int>)(y=>y+2))(3)));
More extreme, PHP:
print (function($x){ return $x+1; })((function($y){ return $y+2; })(3));
A lot of languages support the anonymous functions, the building block of lambda calculus, althougn not all of them flexible enough for λx.(x x).