我试图理解Lisp-1和Lisp-2之间的区别以及它与Clojure的关系,但我仍然不理解.任何人都可以开导我吗?
我有以下代码
(defun avg-damp(f)
#'(lambda(x) (/ (+ (funcall f x) x) 2.0)))
Run Code Online (Sandbox Code Playgroud)
一个电话
(funcall (avg-damp #'(lambda(v) (* v v))) 10)
Run Code Online (Sandbox Code Playgroud)
在SBCL中返回55.0(正确的值)但在emacs lisp中与以下堆栈崩溃
Debugger entered--Lisp error: (void-variable f)
(funcall f x)
(+ (funcall f x) x)
(/ (+ (funcall f x) x) 2.0)
(lambda (x) (/ (+ ... x) 2.0))(10)
funcall((lambda (x) (/ (+ ... x) 2.0)) 10)
eval((funcall (avg-damp (function ...)) 10))
eval-last-sexp-1(nil)
eval-last-sexp(nil)
call-interactively(eval-last-sexp)
Run Code Online (Sandbox Code Playgroud)
如何在Emacs lisp中使其工作?