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