小编Jan*_*nne的帖子

何时使用带有"裸"形式参数的lambda定义?

我正在学习Guile Scheme,在文档中我突然遇到了以下构造:

((lambda args (display args)) 42)
=> (42)
Run Code Online (Sandbox Code Playgroud)

这让我陷入了困境; 直到这一点,我假设正式参数始终包含在列表中:

((lambda (args) (display args)) 42)
=> 42
Run Code Online (Sandbox Code Playgroud)

我想知道何时使用这个变体,以及它如何与可变数量的参数的点表示法不同.具体来说,以下两个变体之间有什么区别:

((lambda args (display args)) 1 2 3)     => (1 2 3)
((lambda (. args) (display args)) 1 2 3) => (1 2 3)
Run Code Online (Sandbox Code Playgroud)

是否存在差异 - 也许是为了更复杂的例子 - 我需要注意并且是否有理由更喜欢一个而不是另一个?

lambda scheme guile

8
推荐指数
1
解决办法
608
查看次数

标签 统计

guile ×1

lambda ×1

scheme ×1