Common Lisp中的一些實現,我們可以說,下面的表達式在clojure中,是(='a'a)是指'同一個原子'?
(eq 'a 'a)
是true
因爲'a
和'a
是「相同的原子」。
這可能是依賴於實現的,但它似乎短語(在一個受歡迎的LISP教材使用)假定爲相同的值的原子被存儲在存儲器中的相同位置。
在Java中,相同的值的2個實習字符串存儲在存儲器中的相同的位置。
現在的Clojure在JVM上繼承了Java的遺產,但它確實可以說,Clojure中(在JVM)兩個原子具有相同的值是相同的原子? (即如何做Clojure的原子存儲機制的工作?)
Common Lisp的方言嗎?這些是什麼?什麼方言?通常的Common Lisp實現都實現ANSI Common Lisp。有CL的方言,但這並不重要,因爲大多數人(包括Lisp用戶)可能從來沒有聽說過他們。但Lisp有很多方言。 - 任何Common Lisp都會返回T(eq'a'a)。一個也不是一個原子,而是一個符號。術語「原子」在這方面也沒有意義。從歷史上看,所有不是缺陷的細胞都是原子。 – 2010-09-07 08:52:30
「在Java中,具有相同值的兩個字符串存儲在內存中的相同位置。」 - 只有當他們都被禁止時。 – 2010-09-07 09:16:25