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