我现在正在学习 Guile Scheme,在文档中我突然遇到了以下结构:
((lambda args (display args)) 42)
=> (42)
这让我陷入了困境;到目前为止,我一直假设形式参数总是包含在一个列表中:
((lambda (args) (display args)) 42)
=> 42
我想知道何时使用此变体,以及这与可变数量参数的点表示法有何不同。具体来说,以下两种变体有什么区别:
((lambda args (display args)) 1 2 3) => (1 2 3)
((lambda (. args) (display args)) 1 2 3) => (1 2 3)
是否有区别——也许对于更复杂的例子——我需要注意,有什么理由更喜欢其中一个吗?