嗨,当我尝试比较一些向量时,我得到了上述提到的错误消息。我尝试了 Clojure 1.10.3 和 babashka v1.0.168。
以下是其中一些有问题的向量
(compare [[1] [2 3 4]], [[1] 4])
;=> Execution error (ClassCastException) at user/eval1 (REPL:1).
;class java.lang.Long cannot be cast to class clojure.lang.IPersistentVector (java.lang.Long is in module java.base of loader 'bootstrap'; clojure.lang.IPersistentVector is in unnamed module of loader 'app')
(compare [[[1 4 []] [6 2] 6 7 6] [[[10 4]] [10] [[3 5 1 9] 3 1 [7 5] 8] 2] [1 [2 [0 3] [2 10 2] 2] [[2 9 7 8 0] [6 0] 10] 9] [[[8 5 8 3]] 2 [2 3 [7 8]]] [0]]
[[[[3] 4 4] 10 5 2 []] [7 8] [7 7 [[]]] [] [[[4 10 6 7]] [9] [] 3]])
这是否是一个错误,还是我太笨以至于无法理解这显然是预期的行为?
我昨天在解决 Advent of Code 编程练习的时候遇到了这个问题。练习要求你比较多个向量,请参阅https://adventofcode.com/2022/day/13
我已经通过实现练习中给出的规范来实现自己的向量比较器解决了这个问题。我上传了源代码以供测试: https://github.com/eNotchy/Advent-of-Code-2022/tree/main/Day13