评论人:hiredman
在这里,似乎最好的办法是把sort改为返回向量。在序列管道中使用sort的情况将继续工作,但紧接着sort和conj的操作将会出错。排序似乎意味着一个完全实现的集合,而向量是这里可以返回的最“强大”的实现集合。
考虑到核心的保守性,以及上面提到的conj排序问题,下一步可能是在现有的mapv基础上添加一个类似sortv的函数。
另一个选择可能是删除对seq的调用,这样sort就返回排序后的数组。这实际上非常有用,因为你可以使用Arrays.binarySearch。在排序后的操作中调用conj将抛出异常,而不是把元素放到错误的位置。