怎麼回事,在Common Lisp的反引號評價:分隔符和運營商
`(1 ,(+ 1 1) (- 4 1) 4) ; '(1 2 (- 4 1) 4)
減號(「 - 」)不作爲操作員處理(但作爲一個象徵;「 - 而不是#」 )(這部分我想我明白了。)
但是,爲什麼第三個左括號的確被評估爲'(
- >(list
...(即,列表/表達式分隔符,而不是隻是一個像' - above'這樣的字面意思)解釋器是否在結束分隔符處「向前看」,或者它是否簡單地說:「好的,這應該是一個列表。如果右側沒有分隔符,表達無效,這不是我的問題。「?
對不起,有一個令人困惑的問題;煮沸它,我想我的問題是:解釋器如何逐步評估上面的列表正確? (也可隨意更正術語。)
「如果反引號引用的話,爲什麼括號仍然意味着列表,而不僅僅是一個文本?這就是要點,除非我知道這不是文字。 (我寫了「符號」,但你的「單詞原子」可能更好)。至於你的回答 - 公平地說 - **首先**樹根據列表完成,然後**操作是並且反引用是一種操作符,這就是爲什麼反引用內的列表仍然是列表的原因? (Sill有些困惑。) – 2012-07-22 20:54:10
這是由讀者應用的。它在同一時間*完成轉換爲列表。反引用不像運行時發生的任何事情那樣是一個操作符。它是解析輸入的代碼的特殊指令。它發生在任何評估之前。 – 2012-07-22 21:13:05