在 Common Lisp 中以 Scheme 风格定义函数,无需 defun

Defining functions Scheme-style in Common Lisp, without defun

在 Scheme 中,您可以定义类似

的函数
(define f (lambda (x) ...))

特别是,你可以这样做

(define f (g))

其中 g 是某个返回函数的函数。是否可以在 Common Lisp 中做同样的事情,即将函数符号与给定的匿名函数相关联?

没关系,我刚刚在 Paul Graham 的书 A​​NSI Common Lisp 中找到了答案(第二次看了之后;第 99 页):

(setf (symbol-function 'f) (lambda (x) (* x x)))

实现(对于大多数意图和目的)与

相同
(defun f (x) (* x x))