Clojure 尝试使用线程宏并获取错误信息
这是我第一次尝试使用threadfirst宏 我的目标是让向量通过Clojure 尝试使用线程宏并获取错误信息,clojure,macros,Clojure,Macros,这是我第一次尝试使用threadfirst宏 我的目标是让向量通过map然后filter (-> [1 2 3 4 5 6 7 8] (filter (fn [x] (<= x 3))) (map (fn [x] (* 10 x)))) (->[12345678] (filter(fn[x])(您必须使用->。文档: 将expr穿过窗体。插入x作为 第一个表单中的最后一项,如果不是 已列出。如果有更多表单,请插入第一个表单作为 第二种形式的最后一项等 那里的线程调用
map
然后filter
(-> [1 2 3 4 5 6 7 8]
(filter (fn [x] (<= x 3)))
(map (fn [x] (* 10 x))))
(->[12345678]
(filter(fn[x])(您必须使用->
。文档:
将expr穿过窗体。插入x作为
第一个表单中的最后一项,如果不是
已列出。如果有更多表单,请插入第一个表单作为
第二种形式的最后一项等
那里的线程调用有filter
和map
,它们都将列表作为第二个参数。->
将它们作为第一个参数。因此那里的代码如下所示:(filter[1 2 3 4 5 6 7 8](fn[x](你需要使用->
@cfrick为什么?你能详细说明一下吗?作为一个小小的旁注:在CLJS和Clojure 1.7.0中,你可以使用传感器,我可以简化这一点:(转换成[](comp(filter…(map…)[1 2 3 4 5 6])
Error: function (x){return (10 * x);
}is not ISeqable
at Error (<anonymous>)
at cljs.core.seq