ベータ版のために以下の関数を定義しましたが、フリー変数が有界になるケースをどう考えるべきかはわかりません。 data Term = Variable Char | Lambda Char Term | Pair Term Term deriving (Show,Eq)
--substition
s[M:x]= if (s=x) then M else s
AB[M:x]= (A[M:x] B
に教会の番号を適用します。それには fun power m n f = n m f;
を、私は掛け算を参照してください。乗算は: fun times m n f = m (n f);
となり、私は間違っていることを知っています。 問題は、どの機能が教会番号を別のものに適用するのか理解できないことです。 たとえば、この式では何が生成されますか? (fn x => fn y => x (x y
では、次の式を満たすλ計算プログラム、T、見つけたいと仮定します。この場合には (T (λ f x . x)) = (λ a t . a)
(T (λ f x . (f x))) = (λ a t . (t a))
(T (λ f x . (f (f x)))) = (λ a b t . (t a b))
(T (λ f x . (f (f (f x)))) = (λ a b c t