【发布时间】:2012-07-19 23:28:10
【问题描述】:
我真的很好奇为什么vector的实现如此冗长?它不能只做[]、[a] 和[a & args] 的原因是什么?
这是我从clj-1.4.0 得到的信息。
=> (source vector)
(defn vector
"Creates a new vector containing the args."
{:added "1.0"
:static true}
([] [])
([a] [a])
([a b] [a b])
([a b c] [a b c])
([a b c d] [a b c d])
([a b c d & args]
(. clojure.lang.LazilyPersistentVector (create (cons a (cons b (cons c (cons d args))))))))
nil
【问题讨论】:
标签: clojure