定義を使用したスキームのyコンビネーター
-
11-10-2019 - |
質問
固定点の組み合わせが何に使われているかを知るために、私は自分のものを書きました。しかし、厳密に匿名の関数でそれを書く代わりに、 ウィキペディアの例, 、Defineを使用しました。
(define combine (lambda (functional)
(functional (lambda args (apply (combine functional) args))))
私はこれを、要因とフィボナッチの機能でテストしましたが、それは機能しているようです。これは、固定点コンビネーターの正式な定義を満たしていますか?
解決
答えはノーです 前の回答で言及されたブログ, 、それはの定義さえ満たしていません 組み合わせ, 、「Combine」は自由変数であるためです。
他のヒント
編集:チェスウェブまたは他の誰かが彼の答えを裏付けている間、一時的に彼の答えは正しいと考え、これは間違っています。
答えはイエスのようです。どうやらまったく同じ組み合わせが表示されます ここ, 、ページの途中:
(define Y
(lambda (f)
(f (lambda (x) ((Y f) x)))))
所属していません StackOverflow