在 ClojureDocs 上,它提到 aset 仅适用于参考 java 类型的数组。但它没有提到amap的使用。
(reduce
(fn [#^doubles sum #^doubles prob]
(println sum)
(amap ^doubles sum idx ret
(fn [x] (println x) (+ x (get prob idx)))))
(double-array 3 (double 0))
[(double-array [1.0 2.0 3.0])
(double-array [1.0 2.0 3.0])
(double-array [1.0 2.0 3.0])
(double-array [1.0 2.0 3.0])
(double-array [1.0 2.0 3.0])])
上面的代码失败并显示以下错误消息
IllegalArgumentException 未找到匹配方法: aset clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:80)
在这种情况下似乎无法使用 amap。
我有两个问题:
- 是否有任何巧妙的解决方案可以为简单的地图逻辑返回原始数组?
- 为什么原始数组不支持 aset?