SICP(例2.6)では、以下の関数は「番号なしで取得」の方法として記述されています。私はこれを理解しようとしている。開始点として、これらの関数はどのように起動されますか?出力が1になる何らかの方法で実際に適用できますか? (?それとも他の番号)SICPからスキーム番号関数を呼び出すには
(define zero (lambda (f) (lambda (x) x)))
(define (add-1 n)
(lambda (f) (lambda (x) (f ((n f) x)))))
私の最初の試みは成功していない:これは、それは数字を生成していないオリジナルのラムダ計算ある
Welcome to DrScheme, version 4.1.5 [3m].
Language: Simply Scheme; memory limit: 128 megabytes.
> (add-1 (zero))
. . procedure zero: expects 1 argument, given 0
> (add-1 zero)
#<procedure>
> (add-1 1)
#<procedure>
> ((add-1 1))
. . #<procedure>: expects 1 argument, given 0
>
あなたはhttp://en.wikipedia.org/wiki/Lambda_calculus#Arithmetic_in_lambda_calculusを見てwan'tかもしれません –