Scala:数学函数不是方法

时间:2014-12-02 16:58:24

标签: scala

在scala中是否有一个具有正常数学函数的对象作为函数值

我对Scala很新,并且发现scala.math定义方法有点让人感到难过,这会增加一些不必要的( _)混乱来产生第一类函数。例如:

[tuple code] (min _).tupled  [more code]
[curry code] (min _).curried [more code]

这样会更干净

[tuple code] min.tupled  [more code]
[curry code] min.curried [more code]

甚至只是:

[tuple code] min [more code]
[curry code] min [more code]

编辑:根据要求提供更具体的示例:

Seq((1, 2), (3, 4)) map (min _).tupled

val a = 1 to 4; val b = a.reverse
val c = a.view zip b map (min _).tupled

val negative = (min _).curried (0)

1 个答案:

答案 0 :(得分:4)

我没有意识到这一点,但自己实现这一目标是微不足道的

object MathFunctions {
  import math._
  val minF = min _
  val maxF = max _
  // ...
}
import MathFunctions._

Seq((1, 2), (3, 4)) map minF.tupled