簡體   English   中英

為什么“The Little Schemer”堅持 `cons` 的第二個參數必須是一個列表?

[英]Why does "The Little Schemer" insist that the second argument to `cons` must be a list?

《小謀士》:

缺點法則
...
cons的第二個參數必須是一個列表。

另外,《小計謀者》:

什么是(cons sl)
其中s'a
l'b

沒有答案。
為什么?

但是如果我真的這樣做(cons 'a 'b)我會得到'(a. b)我知道這不是一個列表但它是有效的 - 有一個答案 - 它是一對......

這在方案中很常見——構建嵌入方案中的子語言。

弗里德曼為自己的需要構建了一種子語言(在最后一章中,它為他的語言構建了一個完整的解釋器)。

為了他的目的,他構建了自己的數據結構,每個結構都有自己的公理。 不要將方案的結構與他構建的方案中嵌入的結構混淆。 他使用方案的運算符來構建他的結構,但他構建的語言公理與方案的公理不同——方案更大。 在其他 lisps 或嵌入式 lisps 中,您會發現相同結構的其他公理。 To make a comparison, the compiler GCC compiles C, it recognizes C as input and it is itself written in C, but the embedded languages it implements at different stages are more complex than C itself (C can be seen embedded in GCC and GCC extends它具有許多結構(除了不是 C 的中間語言),以方便編譯器本身的編寫)。

為了更好地理解這一點,我建議您閱讀Anatomy of Lisp Lisp——它比 SICP 更早,但現在理解基礎非常好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM