2013-03-18 43 views
1

爲什麼(quote '"foo")經過Scheme解釋?根據Scheme中如何構造表達式,它應該是語法冗餘或錯誤的。 quote用於每當一個想要使用一個符號,而計劃想這是一個變量,字符串valid symbols那麼,爲什麼在quote運營商有效的縮寫時的前綴字符串?奇怪的是(quote '"foo")回報(quote "foo")冗餘?爲什麼(報價「‘富’)語法有效方案?

另一個奇怪的實驗(symbol? '"foo")進行評估,以#f,這樣證明了引號的字符串仍然不是符號(如果該帖這樣工作在一份聲明中)。那麼,'是忽略了字符串還是它在其他地方有其他用途?我正在使用雞計劃。

有點微不足道,但還挺介意在同一時間令人難以置信。

回答

3

specification指出:

(quote <datum>)評估爲通過所表示的基準值(參見第4.3節)。這個表示法被用來包含常量。

以上不排除字符串的報價,其實該節中的一個例子是這樣的一個:

'"abc" => "abc" 

由此可見,這也是正確的:

''"abc" => ''"abc" 
+1

啊,也許我應該在第1頁規範的開始。 :) – iKlsR 2013-03-18 16:18:37

相關問題