// 全部問題ない

def hoge(x:Int, y:Int, f:(Int, Int) => Int) = f(x,y)

// hogeをカリー化
val fuga = hoge _ curried

// hogeを部分適応
val piyo = hoge(3, _:Int, _:(Int, Int) => Int)

// 更に部分適応
val moo = piyo(2, _:(Int, Int) => Int)

def mew(x:Int)(y:Int)(f:(Int, Int) => Int) = f(x,y)

// mewを部分適応
val bow = mew(3)_