1
它最好解釋我在用什麼樣的例子。將這個clojure片段用串連接到concat集合的習慣用法是什麼?
由於集合[「蘋果」,「桔子」,「香蕉」]和連接字符串「」功能應該產生‘蘋果,橘子,香蕉’
這是寫此功能的慣用方法是什麼?
user=> (defn my-concat[x st]
(str (first x) (apply str (map #(str st %) (rest x)))))
user=> (my-concat "abcd" "!")
"a!b!c!d"
我看着clojure.string/join源碼。它使用StringBuilder。和循環/重複。我想知道爲什麼作者選擇實施?這可能是由於性能原因?連接可寫爲(apply str(interpos st coll))。 – psaradhi
我定時了這兩個函數。 clojure.string/join的速度總是快大約50% – psaradhi
Interpose會進行更多的工作來維護收集和分隔符的延遲交錯。 Join對單個結果字符串進行了優化。 – Jared314