在Scheme中,,quasiquote的缩写,,@quasiquote-splicing的缩写。
@ 来自哪里?它是为了操作助记符,还是在其他上下文中与 @ 一致,或者其他什么或某种组合?

最佳答案

Quasiquotation in Lisp by Alan Bawden 中的第 4 章 History 指出“Quasi-Quotation”来自 W.V. Quine 的数学逻辑(大约 1940 年),但其中不包含用于取消引用的明确标记。麦卡锡在 1960 年左右开发了 Lisp,但也没有提出任何形式的 S 表达式准引用。正是在 1960-1970 年,AI 社区花费了大量精力学习如何使用 S 表达式和列表结构和符号进行编程:



所以在早期的 Lisps 中,@ 被用来表示拼接。 McDermott 和 Sussman 的 Conniver 语言开始使用 , ,这可能是当前使用的来源。

首先,,是用来表示拼接的,因为认为嵌套的quasiquote拼接是行不通的。鲍登惊讶地发现,有可能做对。为了不干扰 quasiquote-splicing 和嵌套的 quasiquotation,需要引入新符号来区分这两种用途。

根据 Bawden 的说法,quasiquote-splicing 使用 @ 符号并不是为了让读者与新符号混淆。它已经被使用,所以用 quasiquote-splicing ("comma-atsign") 做 ,@X 是有意义的。

为什么我没有找到之前为 @ 选择的。可能是因为 @ 符号来自拉丁词 ad,意思是 at、to 或 going,并且在 ,@ 中你添加了 , s...但这是推测。

在 Bawden 中发现的原因是它与其他(历史)上下文中的 @ 一致。

关于scheme - 哪里来的,@ quasiquote-splicing 的缩写?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46303837/

10-11 04:32