评论者:hiredman
最好的办法可能是将 sort 改为返回向量。在序列管道中间的状态中调用 sort 依然会继续工作,但是排序后紧跟 conj 的话会出错(我手头没有这样的实例,但我确信存在)。排序似乎意味着一个完全实现好的集合,向量是这里可以返回的“最强”实现好的集合。
鉴于核心的保守性,以及上面 conj 排序的问题,下一种最好的办法可能是添加一个类似于现有 mapv 的 sortv。
另一个选择可能是移除对 seq 的调用,这样 sort 就能返回排序后的数组。这实际上会很有用,因为你可以使用 Arrays.binarySearch。在排序后调用 conj 会导致异常,而不是 conj 到“错误”的位置。