在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)
答案 0 :(得分:4)
我没有意识到这一点,但自己实现这一目标是微不足道的
object MathFunctions {
import math._
val minF = min _
val maxF = max _
// ...
}
import MathFunctions._
Seq((1, 2), (3, 4)) map minF.tupled