1つの引数を取る関数があるとしましょう
def fun(x: Int) = x
これに基づいて、同じ呼び出し規約で新しい関数を生成したいのですが、元の関数に委任する前に、引数に変換を適用します。そのために、私はできました
def wrap_fun(f: (Int) => Int) = (x: Int) => f(x * 2)
wrap_fun(fun)(2) // 4
変換を共通に適用するための引数の一部しか持たないアリティの関数を除いて、どのようにして同じことを行うことができますか?
def fun1(x: Int, y: Int) = x
def fun2(x: Int, foo: Map[Int,Str], bar: Seq[Seq[Int]]) = x
wrap_fun(fun1)(2, 4) // 4
wrap_fun(fun2)(2, Map(), Seq()) // 4
wrap_fun
上記の呼び出しを機能させる定義はどのようになりますか?