id
SKS
でも SK(KK)
でもなんでもいい簡約する SKK
= (λxyz.xz(yz))KK
→ λz.Kz(Kz)
Kz
= (λxy.x)z
→ λy.z
λz.Kz(Kz)
→ λz.(λy.z)(λy.z) // ①
→ λz.z
= I
λz.(λy.z)(_)
に実引数 x
を与えれば x
が返ってくることが確認できる簡約(λz.(λy.z)(_))x // zにxを代入
→ (λy.x)(_) // yに(_)を代入
→ x
hsk = const
s x y z = x z (y z)
skk :: a -> a
skk = s k k