Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Sorting 具有排序方式的Clojure NullPointerException_Sorting_Exception_Clojure - Fatal编程技术网

Sorting 具有排序方式的Clojure NullPointerException

Sorting 具有排序方式的Clojure NullPointerException,sorting,exception,clojure,Sorting,Exception,Clojure,这是一个bug还是我可以用某种方式修复它?(当然,在我的实时代码中,相似度是计算出来的) (排序依据:相似性>(对于[ob[:a:b:c][:object ob:similarity 0.0])) NullPointerException clojure.lang.Numbers.ops(Numbers.java:961) 使用Clojure 1.6.0,Fedora 20x64,标准版本 已添加 为什么我会失败,但在(我期望类似的)这一点上,我很好: user=>(排序依据:相似性>[{:形

这是一个bug还是我可以用某种方式修复它?(当然,在我的实时代码中,相似度是计算出来的)

(排序依据:相似性>(对于[ob[:a:b:c][:object ob:similarity 0.0]))
NullPointerException clojure.lang.Numbers.ops(Numbers.java:961)
使用Clojure 1.6.0,Fedora 20x64,标准版本

已添加 为什么我会失败,但在(我期望类似的)这一点上,我很好:

user=>(排序依据:相似性>[{:形状“圆”:相似性1.0}{:形状“正方形”:相似性0.5}{:形状“三角形”:相似性0.0}])
({:相似性1.0,:形状“圆形”}{:相似性0.5,:形状“方形”}{:相似性0.0,:形状“三角形”})

您不能通过关键字访问向量元素,只能通过它们的索引:

=>(获取[:相似度0.5]:相似度)
无
=>(获取[:相似度0.5]1)
0.5
因此,您应该改用hashmap:

=> (get {:similarity 0.5} :similarity)
0.5
下面是代码的外观:

(sort-by :similarity > (for [ob [:a :b :c]] {:object ob :similarity 0.0}))

不能通过关键字访问向量元素,只能通过其索引:

=>(获取[:相似度0.5]:相似度)
无
=>(获取[:相似度0.5]1)
0.5
因此,您应该改用hashmap:

=> (get {:similarity 0.5} :similarity)
0.5
下面是代码的外观:

(sort-by :similarity > (for [ob [:a :b :c]] {:object ob :similarity 0.0}))

不能通过关键字访问向量元素,只能通过其索引:

=>(获取[:相似度0.5]:相似度)
无
=>(获取[:相似度0.5]1)
0.5
因此,您应该改用hashmap:

=> (get {:similarity 0.5} :similarity)
0.5
下面是代码的外观:

(sort-by :similarity > (for [ob [:a :b :c]] {:object ob :similarity 0.0}))

不能通过关键字访问向量元素,只能通过其索引:

=>(获取[:相似度0.5]:相似度)
无
=>(获取[:相似度0.5]1)
0.5
因此,您应该改用hashmap:

=> (get {:similarity 0.5} :similarity)
0.5
下面是代码的外观:

(sort-by :similarity > (for [ob [:a :b :c]] {:object ob :similarity 0.0}))

我认为这是你的问题:

=> (map :similarity (for [ob [:a :b :c]] [:object ob :similarity 0.0]))
(nil nil nil)
=> (for [ob [:a :b :c]] [:object ob :similarity 0.0])
([:object :a :similarity 0.0] [:object :b :similarity 0.0] [:object :c :similarity 0.0])

我认为这是你的问题:

=> (map :similarity (for [ob [:a :b :c]] [:object ob :similarity 0.0]))
(nil nil nil)
=> (for [ob [:a :b :c]] [:object ob :similarity 0.0])
([:object :a :similarity 0.0] [:object :b :similarity 0.0] [:object :c :similarity 0.0])

我认为这是你的问题:

=> (map :similarity (for [ob [:a :b :c]] [:object ob :similarity 0.0]))
(nil nil nil)
=> (for [ob [:a :b :c]] [:object ob :similarity 0.0])
([:object :a :similarity 0.0] [:object :b :similarity 0.0] [:object :c :similarity 0.0])

我认为这是你的问题:

=> (map :similarity (for [ob [:a :b :c]] [:object ob :similarity 0.0]))
(nil nil nil)
=> (for [ob [:a :b :c]] [:object ob :similarity 0.0])
([:object :a :similarity 0.0] [:object :b :similarity 0.0] [:object :c :similarity 0.0])

使用REPL的一个优点是,当遇到这样的问题时,很容易计算子表达式。使用REPL的一个优点是,当遇到这样的问题时,很容易计算子表达式。使用REPL的一个优点是,当遇到这样的问题时,计算子表达式很容易。使用REPL的一个优点是,当遇到这样的问题时,计算子表达式很容易。请原谅我是Clojure的新手,但如果我不能做向量+键,为什么这样做:(添加到主要问题)@WorldsEndless尝试运行
(对于[ob[:a:b:c][:object ob:similarity 0.0])
在REPL中,你会看到它是不同的。然后将它与我的版本进行比较(对于[ob[:a:b:c]{:object ob:similarity 0.0})。请原谅我是Clojure的新手,但如果我不会做向量+键,为什么这会起作用:(添加到主要问题)@WorldsEndless尝试运行
(对于[ob[:a:b:c][:object ob:similarity 0.0]))
在REPL中,你会看到它是不同的。然后将它与我的版本进行比较(对于[ob[:a:b:c]{:object ob:similarity 0.0})。请原谅我是Clojure的新手,但如果我不会做向量+键,为什么这会起作用:(添加到主要问题)@WorldsEndless尝试运行
(对于[ob[:a:b:c][:object ob:similarity 0.0]))
在REPL中,你会看到它是不同的。然后将它与我的版本进行比较(对于[ob[:a:b:c]{:object ob:similarity 0.0})。请原谅我是Clojure的新手,但如果我不会做向量+键,为什么这会起作用:(添加到主要问题)@WorldsEndless尝试运行
(对于[ob[:a:b:c][:object ob:similarity 0.0]))
在REPL中,您将看到它是不同的。然后将它与我的版本比较
(对于[ob[:a:b:c]]{:object ob:similarity 0.0})