implicit def list2ordered[A](x: List[A])(implicit elem2ordered: A => Ordered[A]): Ordered[List[A]] =
new Ordered[List[A]] {
//replace with a more useful implementation
def compare(that: List[A]): Int = 1
}
上面代码块里 (implicit elem2ordered: A => Ordered[A])
这里的隐式为何是这样的写法呢?是由什么简化过来的吗?看过其他写法比如
def sum[A](xs: List[A])(implicit m: Monoid[A]): A = ???
这里的我理解 m
可以从上下文中去寻找 Monoid
这个对象来使用。那么上面的 elem2ordered
是不是就是 m
这里的简写,只不过把创建过程直接写在了参数后面不用另写函数了?