背景是我有很多方法可以进行查找或估算,我希望能够进行比较 结果我从每个回来。
这可能是选择具有最佳置信度的一个或选择多数 从集合。
首先,如果已经存在可能有用的东西,那么在我变得更深入之前会很有用。
(我的谷歌搜索没有提供任何有用的东西)
我有以下方法似乎作为一个起点,但我不确定这是否是正确的方法,所以会很感激 评论和批评。
(我知道这个例子并不适合上面的用例,但它们是最简单的例子)
trait TagFunction[A,B] {
def tag: String
def fn: A => B
def apply(v: A) = (tag, fn(v))
}
object Spong extends TagFunction[String,Option[String]] {
val tag = "spong"
val fn = (s: String) => if (s.length > 0 ) Some(s.toUpperCase) else None
}
object Glarg extends TagFunction[String,Option[String]] {
val tag = "glarg"
val fn = (s: String) => if (s.length > 2 ) Some(s.reverse) else None
}
val sf = Seq(Spong, Glarg)
sf.map(f => f("Trog"))
sf.map(f => f("a"))