我正在尝试创建一个与Clojure兼容的集合。这是我找到的解决方案
https://gist.github.com/fctorial/201dc99080528b4e626245a29f342361
我已经尽力使其表现得像'PersistentList'。但这个类型的存在一个问题。有时候在这个类型的工作中使用空集合时,会解析为'(nil)'
(seq (ROVec. (byte-array 0)))
=> (nil)
(vec (ROVec. (byte-array 0)))
=> []
(vec (seq (ROVec. (byte-array 0))))
=> []
(lazy-seq (ROVec. (byte-array 0)))
=> (nil)
(vec (lazy-seq (ROVec. (byte-array 0))))
=> [nil]
我认为问题是,对于空的ROVec,'.first'返回nil,这与'PersistentList'相同。我该如何修复这个问题?