我正在尝试创建一个与 clojure 环境良好合作的集合。这是我提出的方案
https://gist.github.com/fctorial/201dc99080528b4e626245a29f342361
我已经尝试让它表现得像 'PersistentList'。但其中存在一个问题。有时候使用这种类型的空集合时,在 clojure 环境中将其解析为 '(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' 所做的那样。我该如何修复这个问题?