5

固定小数点コンビネータが何であり、何に使用されるかを学ぶために、私は自分自身を書きました。しかし、ウィキペディアの例のように、厳密に匿名の関数で記述する代わりに、define を使用しました。

(define combine (lambda (functional)
                  (functional (lambda args (apply (combine functional) args))))

階乗とフィボナッチの汎関数でこれをテストしましたが、うまくいくようです。これは、固定小数点コンビネータの正式な定義を満たしていますか?

4

2 に答える 2

5

編集:チェスウェブまたは他の誰かが彼の答えを裏付けている間、一時的に彼の答えは正しく、これは間違っていると考えてください.


答えはイエスのようです。どうやらまったく同じコンビネータがページの中ほどに表示されます:

(define Y
    (lambda (f)
      (f (lambda (x) ((Y f) x)))))
于 2011-01-14T01:41:39.843 に答える
3

前の回答で参照されているブログによると、「combine」は自由変数であるため 、 combinatorの定義を満たしていないため、答えはノーです。

于 2011-05-17T18:34:57.520 に答える