2

你能建议一种方法来提升这两个功能吗?谢谢!

def maxY(f: (Int, Int) => Int, z: Int) = (0 to z).filter(f(0, _) <= z).max
def maxX(f: (Int, Int) => Int, z: Int) = (0 to z).filter(f(_, 0) <= z).max
4

1 回答 1

0

您可以将函数转换为部分应用函数,然后使用元组而不是参数列表:

def maxWithTuple(buildTuple: Int => (Int, Int), f: (Int, Int) => Int, z: Int) = 
  (0 to z).filter(i => (f _).tupled(buildTuple(i)) <= z).max

当然这不是您正在寻找的解决方案,但演示了如何分离参数的构建和函数的调用。

buildTuple是构造用作参数列表的元组的方法

于 2013-07-01T01:42:58.593 回答