【发布时间】:2021-04-21 08:46:24
【问题描述】:
Scheme 传统中有一些形式与 更原始的 形式命名相同,但附加了 * 作为后缀。
一些例子
现在对于这些派生形式,解释是您可以看到以前的绑定
在后来的绑定中,是一种letrec 样式,但一次创建一个ID,而不是一次创建所有ID (?)。
现在这种模式扩展到其他形式,一些包有自定义宏,以* 符号作为后缀(define-ratbag*)。这是 Scheme 部落的一些隐含约定吗?这是否记录在某处?
【问题讨论】:
-
我认为这一切都来自
let*。这似乎起源于 Maclisp,(Lisp 1.5 甚至没有let,我不确定 Interlisp 也没有)。我认为let*只是一个明显的“我需要另一个像这样的名字”的东西,let*的关键目的是真正减少缩进。然后一旦你有了它,所有语义有点像它的东西都可能以x*名称结束。但我不认为这是一个规则:我肯定会使用x*来表示其他类型的变体。 -
感谢您的历史记录!
-
@tfb 作为 Kleene 明星,
__*毕竟可以被视为“多”或“序列”。所以也许这就是灵感。 -
@WillNess:是的,我认为这是合理的。我怀疑它会及时丢失。可能还有 maclisp 人还在附近回答,但他们可能不记得了。