这是我在Scheme中定义的函数:
(define (multn n) (lambda (x) (* x n)))
当我输入
((multn 7) 5)
它给出了35。
然而,当我使用Clisp时:
(defun multn (n) (lambda (x) (* x n)))
它给了我错误:'EVAL:(MULTN 7)不是函数名;尝试使用符号代替'
我怎样才能让它发挥作用?提前谢谢。
答案 0 :(得分:2)
您需要使用funcall
,因为Common Lisp中有不同的命名空间:
[1]> (defun multn (n) (lambda (x) (* x n)))
MULTN
[2]> (funcall (multn 7) 5)
35
请参阅示例the Common Lisp cookbook以获得深入解释。