这&rest意味着什么:(append &rest sequences)
我已经完成了"elisp_intro"一书,但我找不到答案.如果你能帮助我,我将非常感激.
kwa*_*ord 20
它表示以下参数是"rest"参数.在你的例子中,sequences是休息参数.
与普通参数不同,rest参数将使用用户提供的任何参数的"rest".它是一种创建接受可变数量参数的函数的方法.在函数体内,参数将是一个包含所有额外参数的列表.
因此,如果你有一个看起来像的函数(add &rest numbers),那么你就可以调用它(add 1 2 3 4 5),并且在函数中,numbers参数将具有值(1 2 3 4 5).
或者,例如, ((lambda (a &rest r) r) 1 2 3) ;=> (2 3)
Tyl*_*ler 10
函数定义中&rest符号后面的任何参数都将收集到单个列表对象中.所以在(追加和休息序列)的情况下,如果你调用函数:
(append 1)
Run Code Online (Sandbox Code Playgroud)
变量序列将是函数体中的列表(1).如果你把它称为
(append 1 2 3)
Run Code Online (Sandbox Code Playgroud)
变量序列将是函数体中的列表(1 2 3).这在Elisp参考手册的参数列表节点中进行了解释.
(info "(elisp)Argument List")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3040 次 |
| 最近记录: |