在Scheme中,,是缩写,是quasiquote和,@的缩写quasiquote-splicing.
它@来自哪里?它是为了操作的助记符,还是@在某些其他上下文中,或其他东西或某种组合?
第4章Lisp中Quasiquotation中的历史作者: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中发现的原因是它与@其他(历史)背景中的一致.
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |