我正在尝试创建一个与 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]
我认为问题是 '.first' 在空 ROVec 上的返回nil与 'PersistentList' 类似。我该如何修复它?