Clojure 当结果是一个值时,为什么白炽灯返回数字而不是序列?
我遇到的问题可以归结为以下问题:当查询结果是一个值时,Clojure 当结果是一个值时,为什么白炽灯返回数字而不是序列?,clojure,incanter,Clojure,Incanter,我遇到的问题可以归结为以下问题:当查询结果是一个值时,sel/$返回一个数字,当它是多个值时,它是一个序列: (with-data (to-dataset [[1 2] [3 4]]) ($ :col-1)) 收益率(2.4),但 收益率2 我希望它是一个序列在任何时候,因为我想e。G将+应用于序列。我希望避免使用(seq?)检查类型。有什么想法吗?白炽灯的这种行为合理吗 这是我的解决方法: (let [seq-it (fn [a] (if (seq? a) a (list a)))]
sel/$
返回一个数字,当它是多个值时,它是一个序列:
(with-data (to-dataset [[1 2] [3 4]])
($ :col-1))
收益率(2.4),但
收益率2
我希望它是一个序列在任何时候,因为我想e。G将+应用于序列。我希望避免使用(seq?)检查类型。有什么想法吗?白炽灯的这种行为合理吗
这是我的解决方法:
(let [seq-it (fn [a] (if (seq? a) a (list a)))]
(with-data (to-dataset [[1 2]])
(->> ($ :col-1)
(seq-it))))
这会产生(2)。我认为这是白炽灯中的一个缺陷(或者你可能会认为这是一个严重的设计缺陷,应该修复) 这可能与此处讨论的问题有关,其中1x1矩阵结果转换为双精度:
(let [seq-it (fn [a] (if (seq? a) a (list a)))]
(with-data (to-dataset [[1 2]])
(->> ($ :col-1)
(seq-it))))