gpt4 book ai didi

for 循环上的 Clojure NullPointerException

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:41 26 4
gpt4 key购买 nike

我要在这个问题上拔头发了。

在某些情况下,我正在 Clojure 中实现一个简单的算法。假设以下数据结构

(def inf Double/POSITIVE_INFINITY)
(def min-dist (atom {:1 {:1 0 :2 4} :2 {:1 4 :2 0 :3 5} :3 {:2 5 :3 0}}))
(def vertexes [:1 :2 :3])

以下代码将在第一次迭代后崩溃:

(for [k vertexes i vertexes j vertexes]
((println (str " " i " " k " "j))
(if (> (get-in @min-dist [i j] inf) (+ (get-in @min-dist [i k] inf) (get-in @min-dist [k j] inf)) )
(do
;;do some stuff
(println "bla"))
)))

输出如下:

:1 :1 :1 NullPointerException
user.core/eval7683/iter--7675--7684/fn--7685/iter--7677--7686/fn--7687/iter--7679--7688/fn--7689/fn--7690 (form-init1244434853692676604.clj:2)

我明白我可能在此处的 if 期间违反了一些引用。但是我是 clojure 的新手,不知道我在这里做错了什么。与同一序列上的 triple-for 有关吗?

最佳答案

第二行有一对额外的括号。您可能想在那里添加 do,它会起作用。

关于for 循环上的 Clojure NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32708492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com