任何人都可以帮助我理解这段代码吗?我对斯卡拉一无所知,也没有听说过。需要帮助Scala
def maxSubseq(l: List[Int]) = l.scanRight(Nil : List[Int]) {
case (el, acc) if acc.sum + el < 0 => Nil
case (el, acc) => el :: acc
} max Ordering.by((_: List[Int]).sum)
def biggestMaxSubseq(l: List[Int]) = l.scanRight(Nil : List[Int]) {
case (el, acc) if acc.sum + el < 0 => Nil
case (el, acc) => el :: acc
} max Ordering.by((ss: List[Int]) => (ss.sum, ss.length))
def biggestMaxSubseq[N](l: List[N])(implicit n: Numeric[N]) = {
import n._
l.scanRight(Nil : List[N]) {
case (el, acc) if acc.sum + el < zero => Nil
case (el, acc) => el :: acc
} max Ordering.by((ss: List[N]) => (ss.sum, ss.length))
}
def linearBiggestMaxSubseq[N](l: List[N])(implicit n: Numeric[N]) = {
import n._
l.scanRight((zero, Nil : List[N])) {
case (el, (acc, _)) if acc + el < zero => (zero, Nil)
case (el, (acc, ss)) => (acc + el, el :: ss)
} max Ordering.by((t: (N, List[N])) => (t._1, t._2.length)) _2
}
该代码是否可以在Java中实现?
购买一本书从[斯卡拉开始 - 大卫波拉克](http://www.amazon.com/Beginning-Scala-David-Pollak/dp/1430219890) – Nishant
是的,我认为它可以用Java实现,但是这很愚蠢。一个scala编译器可以让你生成可以直接从java使用的类文件。 – Benson
我的大脑受伤了。忘了在Java中实现这个令人费解的混乱,我认为它需要在Scala中更加干净地实现! –