5

为了了解定点组合器的用途和用途,我编写了自己的。但是,我没有使用严格的匿名函数来编写它,例如Wikipedia 的示例,而是使用了定义:

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

我已经用阶乘和斐波那契的函数对此进行了测试,它似乎有效。这是否符合定点组合器的正式定义?

4

2 回答 2

5

编辑:虽然 chessweb 或其他任何人都证实了他的答案,但暂时认为他的答案是正确的,而这个答案是错误的。


似乎答案是肯定的。显然,在页面中间出现完全相同的组合器:

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

答案是否定的,因为根据上一个答案中提到的博客,它甚至不符合combinator的定义,因为'combine'是一个自由变量。

于 2011-05-17T18:34:57.520 回答