Lazy K で短い前者関数

前者関数を

(lambda(n f x)(n (lambda(g h)(h (g f))) (lambda(u) x) (lambda(u) u)))

と定義すると、Lazy K では

S(S(KS)(S(K(S(KS)))(S(S(KS)(S(K(S(KS)))(S(K(S(KK)))(S(S(KS)K)(K(S(K(S(K(SI))))(S(K(S(KK)))(S(K(SI))K))))))))(K(KK)))))(K(K(KI)))

となって、かなり長いけど、

(lambda(n) (n (lambda(g h)(h (g 1+))) (lambda(u) 0) (lambda(u) u)))

と定義すると、

S(S(SI(K(S(K(SI))(S(KK)(SI(K(S(S(KS)K))))))))(K(K(KI))))(KI)

まで短くなる。