我正在阅读关于二极管的内容,这让我想到了Monocle/Scalaz中的透镜:
如果我有一个深度嵌套的数据结构,并使用Monocle/Scalaz透镜条件地修改其中一部分,想要比较是否有更改,是需要进行深度比较,还是可以使用引用相等性来确定两个数据结构(在条件修改之前和之后)是否相同?
换句话说:
如果我有一个深度嵌套的数据结构,并使用Monocle/Scalaz透镜条件地修改其中一部分,想要比较是否有更改,是需要进行深度比较,还是可以使用引用相等性来确定两个数据结构(在条件修改之前和之后)是否相同?
换句话说:
val f_new=modifyWithMonocleIfTheSunIsUp(f_old)
是否可以使用引用相等性 (eq
) 来有效比较数据结构的根 (f_old
, f_new
),使得比较 f_new==f_old
更加高效?
换句话说,
当且仅当 f_new.eq(f_old)
为真时,f_new==f_old
是否为真?(方程1)
如果不是,为什么?
如果不是,是否有可能使 方程1
成立?如何做到?