13.2.1 Lambda 表达式的组成部分

Lambda 表达式是一种具有如下结构的列表:

(lambda (arg-variables...)
  [documentation-string]
  [interactive-declaration]
  body-forms...)

Lambda 表达式的第一个元素始终是符号 lambda。 这一设计表明该列表表示一个函数。函数定义以 lambda 开头的原因是: 避免其他用途的列表被误判为合法的函数。

第二个元素是一个符号列表——即参数变量名(see 参数列表的特性), 这部分被称为lambda 列表。当调用一个 Lisp 函数时, 参数值会与 lambda 列表中的变量进行匹配,这些变量会被赋予由传入值构成的局部绑定。 See 局部变量

文档字符串是置于函数定义内的一个 Lisp 字符串对象,用于为 Emacs 帮助功能描述该函数。 See 函数的文档字符串

交互式声明是形如 (interactive code-string) 的列表。 该声明用于指定:若函数以交互方式调用,应如何提供参数。 包含此类声明的函数被称为命令(commands);它们可通过 M-x 调用,或绑定到某个按键上。 不打算以这种方式调用的函数不应包含交互式声明。 关于如何编写交互式声明,see Defining Commands

剩余的元素构成函数 体(body):即实现函数功能的 Lisp 代码(或者用 Lisp 程序员的话来说, “一组待求值的 Lisp 形式”)。函数的返回值为函数体最后一个元素的求值结果。

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© 2025 Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike