Spire DiffDiff算法的通用实现
尖顶差异(Spire-Diff)是Scala中的通用实现,使用Spire的Eq[A]类型类。(这是一个非常年轻的项目,名称和API可能会改变。)
概述:通常,能够找到多种序列之间的差异会很方便。Unix命令diff(1)将显示行之间的差异,但是如果您对字符或字节感兴趣怎么办?如果你有一个整数序列,或者一个更奇特的类型怎么办?输入spire-diff!由于它使用spire.algebra.Eq[A]类型类,因此它可以比较Spire支持的任何类型的序列,或者您可以为其定义Eq实例的任何类型。将来,我希望能够支持比Eq更丰富的功能。例如,您可以想象在比较地图或集合时获得比匹配/不匹配更细粒度的输出。
例子:
import spire.diff._
import spire.implicits._
val left = Array(1, 2, 3, 4)
val right = Array(1, 2, 5, 4)
val diffResult = left.diff(right)
println(diffResult)
下载地址
用户评论