Function 什么是诡计或计划?

Function 什么是诡计或计划?,function,scheme,guile,Function,Scheme,Guile,我无法通过搜索找到它,什么是诡计?例如,你可以在这个答案中找到它,你可以在这里的文档中找到:创建高级参数处理过程 6.10.4.1λ*和定义* lambda*与lambda类似,只是有一些扩展允许可选的 和关键字参数 可选参数和关键字参数也可以采用默认值 当调用中不存在时,通过给出两个元素的变量列表 名称和表达式。例如在 foo是一个固定参数,bar是一个带有默认值的可选参数 值42,baz是默认值为73的关键字参数。违约 除非需要,否则不计算值表达式,直到 该过程被调用 通常情况下,如果调用的

我无法通过搜索找到它,什么是诡计?例如,你可以在这个答案中找到它,你可以在这里的文档中找到:创建高级参数处理过程

6.10.4.1λ*和定义*

lambda*与lambda类似,只是有一些扩展允许可选的 和关键字参数

可选参数和关键字参数也可以采用默认值 当调用中不存在时,通过给出两个元素的变量列表 名称和表达式。例如在

foo是一个固定参数,bar是一个带有默认值的可选参数 值42,baz是默认值为73的关键字参数。违约 除非需要,否则不计算值表达式,直到 该过程被调用

通常情况下,如果调用的关键字不是 指定人:key,但在定义中添加:allow其他键 关键字参数声明后将忽略未知 关键词

发件人:


您可以在以下文档中找到:创建高级参数处理过程

6.10.4.1λ*和定义*

lambda*与lambda类似,只是有一些扩展允许可选的 和关键字参数

可选参数和关键字参数也可以采用默认值 当调用中不存在时,通过给出两个元素的变量列表 名称和表达式。例如在

foo是一个固定参数,bar是一个带有默认值的可选参数 值42,baz是默认值为73的关键字参数。违约 除非需要,否则不计算值表达式,直到 该过程被调用

通常情况下,如果调用的关键字不是 指定人:key,但在定义中添加:allow其他键 关键字参数声明后将忽略未知 关键词

发件人:

在方案中,未定义标准定义*,但命名约定规定,任何以星号结尾的符号将提供与不带星号的符号非常相似的操作

在标准中,您有绑定变量的let和同时绑定一个变量的let*,以便创建的变量可用于下一个绑定

有一些SRFI是扩展方案的标准方式。实现实现了许多SRFI本机,而那些没有实现的实现在很多情况下只能下载参考实现。定义*和lambda*,它们为Scheme提供可选的位置参数。查看SRFI-89未列出,但SRFI-89本身提到Guile拥有它们,除了它使用符号:key而不是!钥匙,因此不可携带

R5RS实现比标准具有更多的全局绑定是很常见的。如果它不是SRFI的一部分,您将通过使用此类扩展被锁定。

在方案标准中未定义define*,但命名约定规定,任何以asterix结尾的符号将提供与不带asterix的符号非常相似的操作

在标准中,您有绑定变量的let和同时绑定一个变量的let*,以便创建的变量可用于下一个绑定

有一些SRFI是扩展方案的标准方式。实现实现了许多SRFI本机,而那些没有实现的实现在很多情况下只能下载参考实现。定义*和lambda*,它们为Scheme提供可选的位置参数。查看SRFI-89未列出,但SRFI-89本身提到Guile拥有它们,除了它使用符号:key而不是!钥匙,因此不可携带

R5RS实现比标准具有更多的全局绑定是很常见的。如果它不是SRFI的一部分,您将通过使用此类扩展被锁定

library syntax: lambda* ([var…]
[#:optional vardef…]
[#:key vardef… [#:allow-other-keys]]
[#:rest var | . var])
body1 body2 …
(define* (frob foo #:optional (bar 42) #:key (baz 73))
  (list foo bar baz))