我不明白为什么我的lambda是错误的。它应该创建一个make-exp。
(define (exp b n)
(if (n = 0)
1
(* b (exp b (- n 1)))))
(define make-exp (lambda(n) (lambda(b)(exp b n ))))
(define square (make-exp 2))
(square 3)
错误:2不是函数[square,exp,(anon)]
(n = 0)
这使用参数=
和0
调用函数n
,但n
是2
而不是函数,因此这不起作用。大概你指的是(= n 0)
。