gpt4 book ai didi

lambda - 不能将函数调用用作 s-exp 中的第一个参数

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:02 24 4
gpt4 key购买 nike

<分区>

我正在尝试使用函数返回普通 lisp 中的函数。但是,我遇到了一个奇怪的情况,我想解释一下。

这就是我想要做的:

(defun makefun(x) ;1
(lambda (z)
(+ x z)))

((makefun 1) 2) ;2

这会导致非法函数调用。但是,以下是有效的:

((lambda (z) (+ 1 z)) 2) ;3

(funcall (makefun 1) 2) ;4

为什么我不能像第一个例子那样使用makefun?我希望对 2 中的调用进行评估,因此它等同于第 3 行。

24 4 0