我有一个向量[[1 2 3 4] [5 6]]
,我想在此向量上调用函数double
以获取[[1.0 2.0 3.0 4.0] [5.0 6.0]]
我可以做(mapv (fn [x] (mapv double x)) [[1 2 3 4] [5 6]])
这会给我我想要的东西
我想知道是否有更好/更快的方法。
由于
答案 0 :(得分:1)
我不知道我必须称之为“更好”,但每当我必须将调用嵌套到地图时,我个人倾向于使用for
。我个人觉得它更具可读性。
(def vecs [[1 2 3 4] [5 6]])
(for [r vecs] (for [x r] (double x)))
数据以列表形式返回,我假设将它保存在向量中并不是特别重要。如果你这样做,那么它的可读性就会降低一些,我可能更喜欢你的方法。
(vec (for [r vecs] (vec (for [x r] (double x)))))