gpt4 book ai didi

function - 如何在elisp中返回函数

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

这与这个问题有关:elisp functions as parameters and as return value

(defun avg-damp (n)
'(lambda(x) (/ n 2.0)))

要么

(funcall (avg-damp 6) 10)

((avg-damp 6) 10)

他们分别给出了 Symbol's value as variable is void: neval: Invalid function: (avg-damp 6) 错误。

最佳答案

第一种形式不起作用的原因是 n 是动态绑定(bind)的,而不是词法绑定(bind)的:

(defun avg-damp (n)
(lexical-let ((n n))
(lambda(x) (/ x n))))
(funcall (avg-damp 3) 12)
==> 4

第二种形式不起作用的原因是 Emacs Lisp 与 Common Lisp 一样,a "lisp-2", not a "lisp-1"

关于function - 如何在elisp中返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16344077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com