我遇到的问题可以归结为以下问题:当查询的结果是一个值时,sel / $
返回一个数字,当它超过一个值时,它是一个序列:
(with-data (to-dataset [[1 2] [3 4]])
($ :col-1))
产生 (2 4),但是
(with-data (to-dataset [[1 2]])
($ :col-1))
产量 2。
我希望它始终是一个序列,因为我想将 + 应用于该序列。我想避免使用 (seq?) 检查类型。有任何想法吗?Incanter的这种行为合理吗?
这是我的解决方法:
(let [seq-it (fn [a] (if (seq? a) a (list a)))]
(with-data (to-dataset [[1 2]])
(->> ($ :col-1)
(seq-it))))
产生(2)。