以 * 作为后缀的方案名称
Scheme names with * as suffix
Scheme 传统中有一些形式与更原始的 形式命名相同,但附加了*
作为后缀。
一些例子
现在对于这些派生形式的解释是,您可以看到以前的绑定
在后来的绑定中,一种 letrec
风格,但一次创建一个 ID 而不是一次创建所有 ID (?)。
现在,这种模式将思想扩展到其他形式,并且一些包具有带有 *
符号作为后缀 (define-ratbag*
) 的自定义宏。这是 Scheme 部落的一些隐含约定吗,这在某处有记录吗?
*
后缀可能有以下含义:
- 顺序作用域,如
let*
,而不是独立作用域,如let
。示例:with-syntax*
类似于 with-syntax
,但每个右侧都在前面子句的范围内。
- 顺序效应与独立效应相反。示例:
parameterize*
is like parameterize
, but each parameter's new value is evaluated with the previous parameters updated to their new values; with-handlers*
类似于 with-handlers
,但每个异常处理程序都在安装了先前异常处理程序的上下文中调用。
- 和另一件事一样,但是多次。示例:
remove*
is like remove
, but removes all occurrences of the given element; regexp-match*
类似于 regexp-match
,但会找到所有匹配项。
- 和其他东西一样,但是最后一个参数就像一个剩余参数。示例
append*
, list*
:(append* vss)
等同于 (apply append vss)
.
- 与其他事物类似,但接受多个参数。示例:
hash-set*
类似于 hash-set
,但接受多个键值对。
- 和另一件事一样,但有点不同。示例:
write-bytes-avail*
is like write-bytes-avail
, except it never blocks; date*
is like date
except it adds nanosecond and time-zone-name fields; call-with-input-file*
与 call-with-input-file
类似,除了在转义时关闭输入端口。在此用法中,您可以将 *
理解为 Scheme/Racket 版本的素数后缀。
Scheme 传统中有一些形式与更原始的 形式命名相同,但附加了*
作为后缀。
一些例子
现在对于这些派生形式的解释是,您可以看到以前的绑定
在后来的绑定中,一种 letrec
风格,但一次创建一个 ID 而不是一次创建所有 ID (?)。
现在,这种模式将思想扩展到其他形式,并且一些包具有带有 *
符号作为后缀 (define-ratbag*
) 的自定义宏。这是 Scheme 部落的一些隐含约定吗,这在某处有记录吗?
*
后缀可能有以下含义:
- 顺序作用域,如
let*
,而不是独立作用域,如let
。示例:with-syntax*
类似于with-syntax
,但每个右侧都在前面子句的范围内。 - 顺序效应与独立效应相反。示例:
parameterize*
is likeparameterize
, but each parameter's new value is evaluated with the previous parameters updated to their new values;with-handlers*
类似于with-handlers
,但每个异常处理程序都在安装了先前异常处理程序的上下文中调用。 - 和另一件事一样,但是多次。示例:
remove*
is likeremove
, but removes all occurrences of the given element;regexp-match*
类似于regexp-match
,但会找到所有匹配项。 - 和其他东西一样,但是最后一个参数就像一个剩余参数。示例
append*
,list*
:(append* vss)
等同于(apply append vss)
. - 与其他事物类似,但接受多个参数。示例:
hash-set*
类似于hash-set
,但接受多个键值对。 - 和另一件事一样,但有点不同。示例:
write-bytes-avail*
is likewrite-bytes-avail
, except it never blocks;date*
is likedate
except it adds nanosecond and time-zone-name fields;call-with-input-file*
与call-with-input-file
类似,除了在转义时关闭输入端口。在此用法中,您可以将*
理解为 Scheme/Racket 版本的素数后缀。