(免責聲明 - 我所知道的Seqs的Clojure中的意義)common lisp cons從兩個符號創建一個列表,clojure缺點需要一個seq來提供?
Common Lisp中的利弊功能可用於兩個符號組合成一個列表:
(def s 'x)
(def l 'y)
(cons s l)
Clojure中 - 你可以只對一個序列負責 - cons沒有擴展到使用兩個符號。所以,你必須寫:
(def s 'x)
(def l 'y)
(cons s '(l))
有Clojure中的一個更高層次的圖案,說明Common Lisp的Clojure的和之間的差異?
我一直在Clojure編程一點,甚至沒有意識到這一點!如果你聲稱是正確的,這是一個很好的問題:) – 2010-07-11 11:04:00
請注意,使用'conj'通常比'cons'更好。有關更多詳細信息,請參閱我對此問題的回答(以及由cgrand發表的評論):http://stackoverflow.com/questions/3008411/clojure-seq-cons-vs-list-conj(實際上,該答案也解釋了在Clojure中'cons'的功能與傳統的Lisp'cons'在一定程度上相反。) – 2010-07-11 12:01:54
您的第一個示例不是列表,它是一對。一對(a。b)與兩個元素(ab)的列表不同,它恰好是這一對(a。(b。nil)) – Zorf 2010-07-12 05:26:45