我无法弄清楚为什么我的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)]
答案 0 :(得分:5)
(n = 0)
这会使用参数n
和=
调用函数0
,n
除2
之外的函数不是函数,因此这不起作用。大概你的意思是(= n 0)
。