5
public interface ISeq extends IPersistentCollection {
  Object first();
  ISeq next();
  ISeq more();
  ISeq cons(Object o);
}

more接口方法ISeq似乎正在运行restmore为什么不命名rest

4

1 回答 1

7

这些信息是我对 Clojure git 存储库做一些考古的解释。

最初只有rest, 它返回nil而不是像今天那样返回 emtpy 列表。当 Rich 引入惰性时,它被重命名next,并ISeq获得了more方法。ASeq实现该more方法以返回一个空的 seq 而不是nil,并next保留方法抽象。在此之后的某个时刻,该rest函数作为我们今天所知的非序列、返回空列表的版本重新焕发生机,但 Java 代码没有被重构。

于 2013-04-04T17:22:11.470 回答