我的讲义中的此功能是否正确编写?
(define foo (λ (f) (+ (f 1) (f 2))))
(foo 3)不起作用,并且任何其他参数都表示它需要1个参数。我认为讲师的意思是:
(define foo (λ (f) (+ f f)) )
据我所知(f 1)不是在方案中说任何东西的有效方法,但是如果第一个实际上是正确的函数,谁能给我一个有效输入的例子吗?
答案 0 :(得分:4)
(define foo (λ (f) (+ (f 1) (f 2))))
可以。它以函数f作为输入。您可以这样称呼它:
(define g (lambda (x) (* x 10)))
(foo g)
答案 1 :(得分:0)
更新:我找到了此示例,因此该功能是正确的。我实际上不确定这里发生了什么。
(定义foo(λ(f)(+(f 1)(f 2))))
(foo(λ(x)(* x 2)))
输出:6
编辑:没关系,我输入时最终了解了语法。如果参数f是一个函数,则(f 1)表示输入为1的f,则该示例有意义。我应该删除可能对任何人都没有用的问题吗?