我的高阶程序有什么问题?

时间:2014-10-10 16:10:48

标签: scheme

我无法弄清楚为什么我的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)]

1 个答案:

答案 0 :(得分:5)

(n = 0)

这会使用参数n=调用函数0n2之外的函数不是函数,因此这不起作用。大概你的意思是(= n 0)