那么,@quasiquote-splicing的缩写?

rwa*_*ace 4 scheme racket

在Scheme中,,是缩写,是quasiquote,@的缩写quasiquote-splicing.

@来自哪里?它是为了操作的助记符,还是@在某些其他上下文中,或其他东西或某种组合?

Erw*_*ers 6

第4章LispQuasiquotation中的历史作者:Alan Bawden指出,"Quasi-Quotation"来自WV Quine的Mathemathical Logic(大约在1940年),但是它没有包含非引号的显式标记.McCarthy在1960年左右开发了Lisp,但也没有提出任何形式的S-expression quasiquotation.在1960年至1970年期间,人工智能社区花费了大量精力学习如何使用S表达式和列表结构和符号来编程:

[N]那些年代的任何东西都像今天的Lisp quasiquotation一样,与McDermott和Sussman的Conniver语言中的符号非常相似.在Conniver的符号'X,,X@X在那里写的!"X,@X!@X分别,但这个想法基本上是相同的.(Conniver也有一个,X可以看作类似的结构@X,所以这可能是逗号角色最终填补其当前角色的方式.)(第6页)

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

首先,,用于表示拼接,因为认为嵌套quasiquote拼接不起作用.Bawden惊讶地发现,有可能做对.因此,quasiquote-splicing嵌套的quasiquotation不会干扰,需要引入新的符号来区分这两种用途.

根据Bawden的说法,不要将读者与quasiquote-splicing使用该@标志的新标志混为一谈.它已经被使用,因此是有道理的做quasiquote-splicing,@X("逗号ATSIGN").

为什么选择@早些时候我还没找到.也许是因为这个@符号来自拉丁词ad,意思是在,向或向,并且随着,@你添加,s ......但这是猜测.

在Bawden中发现的原因是它与@其他(历史)背景中的一致.