gpt4 book ai didi

emacs - Elisp:在 Let 中绑定(bind)一个 lambda 并执行它

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

<分区>

我试图理解 Emacs Lisp 中的 lambda 概念。

ielm 中,执行:

((lambda (x) (* x x)) 5)

给我们 25

(let ((x 4)) (* x x))

给我们 16。但是当我这样做时:

(let ((f (lambda (x) (* x x)))) (f 7))

它没有给我 49,而是通知我:

*** Eval error ***  Symbol's function definition is void: f

不知道为什么,我确信语法是正确的并且 f 是在 let 中定义的?

使用cl-flet定义let-ed函数

我们可以不使用 funcall 实际上做到这一点。 cl 模块包含来自 Common Lisp 的标准函数。我们首先导入它:

(require 'cl)

之后我们可以使用cl-flet来定义我们的函数:

(cl-flet ((f (x) (* x x)))
(f 7))

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