评论者:hiredman
看来最好的办法是将sort修改为返回一个向量。在sequence pipelines中使用sort的中途会继续工作,但排序后接属性的操作将失败(我无法立刻回忆起具体的例子,但我确信它们是存在的)。排序似乎暗示了一个完整实现了的collection,而vector是这里可以返回的“最强”实现。
鉴于core的保守性,以及上面提到的conj排序问题,下一步最好的办法可能是添加一个类似于现有mapv的sortv。
另一种选择可能是去掉对seq的调用,这样sort就返回一个已排序的数组。这实际上非常有用,因为你可以使用Arrays.binarySearch。然后在sort之后调用conj将抛出异常,而不是conj到“错误”的位置。