Modules
Traits
A trait capturing the notion of a type where a delta can be
computed between two of its items. For example, given
a1=[0,1,2]
and a2=[1,1,2]
, we could compute a delta d
such
that a1.transform_into(d)
returns a2
. Observe that the delta
has an orientation which (implicitly) means it goes from this
item to the other,A trait capturing the essence of an incremental computation from
self
to some item T
. This is similar to the Into
trait, but
with the ability to work with deltas. To understand this,
consider the following:A trait describing something which can be transformed by
applying a delta. For example, an array
[0,1,2]
can be
transformed into another [3,1,2]
by applying a delta which
assigns element 0
to 3
. This trait describes the functional
case, where the receiver is not modified. Furthermore, this
trait allows for the possibility that the transformation may not
succeed.A trait describing something which can be transformed in place
by applying a delta. For example, an array
[0,1,2]
can be
transformed into another [3,1,2]
by applying a delta which
assigns element 0
to 3
. This trait describes the imperatice
case where the receiver is modified in place. Furthermore, this
trait allows for the possibility that an error is returned.A trait describing something which can be transformed in place
by applying a delta. For example, an array
[0,1,2]
can be
transformed into another [3,1,2]
by applying a delta which
assigns element 0
to 3
. This trait describes the imperative
case where the receiver is modified in place.A trait describing something which can be transformed by
applying a delta. For example, an array
[0,1,2]
can be
transformed into another [3,1,2]
by applying a delta which
assigns element 0
to 3
. This trait describes the functional
case, where the receiver is not modified.