相关疑难解决方法(0)

为什么Clojure变量arnds args根据用途会有不同的类型?

在回答另一个问题时,我遇到了一些我没想到的Clojure的变量arity函数args:

user=> (defn wtf [& more] (println (type more)) :ok)
#'user/wtf

;; 1)
user=> (wtf 1 2 3 4)
clojure.lang.ArraySeq
:ok

;; 2)
user=> (let [x (wtf 1 2 3 4)] x)
clojure.lang.ArraySeq
:ok

;; 3)
user=> (def x (wtf 1 2 3 4))
clojure.lang.PersistentVector$ChunkedSeq
#'user/x
user=> x
:ok
Run Code Online (Sandbox Code Playgroud)

为什么ArraySeq1)和2)中的类型,但PersistentVector$ChunkedSeq在3)?

types clojure variadic-functions

14
推荐指数
1
解决办法
569
查看次数

标签 统计

clojure ×1

types ×1

variadic-functions ×1