Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 当结果是一个值时,为什么白炽灯返回数字而不是序列?_Clojure_Incanter - Fatal编程技术网

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矩阵结果转换为双精度:


我认为这是白炽灯中的一个缺陷(或者您可能认为这是一个严重的设计缺陷,应该修复)

这可能与此处讨论的问题有关,其中1x1矩阵结果转换为双精度:


如果这是一个bug或设计缺陷,我可以使用(let[seq it(fn[a](If(seq?a)a(list a))))(带数据(到数据集[[12][34])(>>($:col-1)(seq-it)))如果这是一个bug或设计缺陷,我可以使用(let[seq it(fn[a](If(seq?a)a(list a)))))(带数据(到数据集[[12][34])(>($:col 1)(seq-it)))
(let [seq-it (fn [a] (if (seq? a) a (list a)))]
  (with-data (to-dataset [[1 2]])
    (->> ($ :col-1) 
         (seq-it))))