2013-04-14 37 views
2

我剛剛開始與Clojure,它只是一個星期。 我試着解決一些標準問題的Clojure方式。我們什麼時候需要在Clojure中引用列表?

我閱讀了引用列表,這些引用列表沒有得到評估,而是被認爲是像矢量這樣的標準數據集合。

什麼情況下列表的引用形式將有用,而不是矢量?

+0

除了由'cons'-ing東西建立的列表我想不出多少。但大多數情況下,您不必爲此擔心。 – dsm

回答

2

Clojure的名單可以作爲不可變的,持久的單鏈表。對於典型的列表操作,特別是涉及頭部和尾部操作的列表操作,列表將比矢量執行得更好。此外,列表的引用形式不會立即得到評估,因此您可以將函數調用存儲在它們中並控制何時執行調用;在矢量中做同樣的事情,並且所有的東西都會立即按順序運行。

向量對隨機訪問更好,如果需要將數據追加到集合的末尾,它們的性能會更好。它們也是「聯合的」,這意味着你可以將它們當作鍵值爲索引的映射,並且可以將它們用於瞬態操作(這是一個完整的其他主題)。

相關問題