If you look at the following Ordering.on
method of the standard library:
def on[U](f: U => T): Ordering[U]
You'll see that on
transforms an Ordering[T]
into an Ordering[U]
while taking a function from U
to T
. So the method on
witnesses the fact that Ordering
can be seen as a Contravariant
functor with:
def contramap[A, B](f: B => A) = (fa: Ordering[A]) => fa.on(f)
I also saw the blog post from Tony and it helped me finally makes sense of this three year old answer from retronym to one of my question.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…