这个 lambda 演算的范式是什么?是否有任何自由变量?

What is the normal form of this lambda calculus and are there any free variables?

我正在尝试学习 lambda 演算,但我很难做到。所以如果有人能解释一下,我将不胜感激!

(λj.λx.f(j x)) (λy.f y)

有一个自由变量,fjxy 都受抽象约束。

有两种方法可以达到正常形态。执行两次 beta 缩减

(λj.λx.f(j x)) (λy.f y) == (λx.f(<b>(λy.f y)</b> x))  <i>apply (λj.λx.f(j x)) to (λy.f y) </i>
                        == (λx.f(<b>f x</b>))        <i> apply (λy.f y) to x</i>

或执行 eta 缩减,然后进行 beta 缩减。

(λj.λx.f(j x)) (λy.f y) == (λj.λx.f(j x)) <b>f</b>  <i> replace (λy.f y) with f</i> 
                        == (λx.f(<b>f</b> x))       <i> apply (λj.λx.f(j x)) to f</i>