如何从Cons获取PersistentList?

时间:2012-02-24 19:40:43

标签: clojure

我正在使用slurp从文件加载表单,读取并将它们合并在一起以递归方式将所有表单读入集合中。然后希望将它传递给scriptjure(js [& forms])函数,它需要一个(list?),但是(cons)给了我一个Cons classed-object。我怎样才能将(class(cons 1'(2 3 4 5)))转换为IPersistentList?谢谢!

1 个答案:

答案 0 :(得分:4)

使用(apply list x)从序列list创建x

user=> (class (apply list (cons 1 '(2 3 4 5 6))))
clojure.lang.PersistentList

或者,如果您从列表开始,然后在其上添加conj表单,您最终会得到一个列表:

user=> (class (conj (list 1 2 3) 4))
clojure.lang.PersistentList

在这种情况下不需要cons因为conj,给定一个列表,会返回一个列表。