कहते हैं कि मैं एक समारोह के एक तर्कस्काला समारोह परिवर्तन
def fun(x: Int) = x
लेने उस आधार पर मिल गया है, मैं एक ही बुला सम्मेलन के साथ एक नया समारोह उत्पन्न करना चाहते हैं, लेकिन वह अपने तर्कों के लिए कुछ परिवर्तन लागू कर देंगे मूल समारोह में प्रतिनिधि से पहले। उसके लिए, मैं कर सकता
def wrap_fun(f: (Int) => Int) = (x: Int) => f(x * 2)
wrap_fun(fun)(2) // 4
एक ही बात कर के बारे में कैसे जा सकते हैं, किसी भी arity कि केवल तर्क का हिस्सा आम में करने के लिए परिवर्तन लागू करने के के कार्यों को छोड़कर?
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
परिभाषा ऊपर आमंत्रण बनाने की तरह लग रहे काम करेंगे?
Fwiw, ऐसी चीजें गतिशील भाषाओं में वास्तव में सरल हो सकती हैं: http://ideone.com/MYP2W। – missingfaktor