我正在尝试编写一个函数,该函数接受一个本质上是函数的参数,并返回该函数的反转。我将通过使用lambda和apply来实现这一目标。这是我到目前为止的...它目前不起作用,因为我似乎无法弄清楚如何定义一个将接受任意数量参数的lambda函数。非常感谢任何其他帮助。
(define foobar (lambda (F) (lambda x(apply not (map x F)))))
示例输出:
<(>(L3 <)4 3) - &gt; #T <(>(L3 <)3 4) - &gt; #F <(>(L3 <)3 3) - &gt; #T <(>(L3(L3 <))3 4) - &gt; #T (p(L3(L3 <))4 3) - &gt; #F答案 0 :(得分:3)
以下是negate
函数的简单实现:
;; negate : (Any * -> Boolean) -> (Any * -> Boolean)
(define (negate f)
(lambda args
(not (apply f args))))