में समान करीबी प्रकारों के बीच अंतर निम्नलिखित दो कार्यों के प्रकारों के बीच क्या अंतर है?स्कैला
def add1: Int => Int => Int = a => b => a + b
def add2(a: Int)(b: Int) = a + b
उनकी घोषणाओं के आधार पर, वे एक ही प्रकार के प्रतीत होते हैं। दोनों एक ही तरह से कहा जाता है:
scala> :t add1
Int => Int => Int
scala> :t add2
(a: Int)(b: Int)Int
साथ ही, add1
का आंशिक आवेदन थोड़ा add2
की तुलना में क्लीनर है:
scala> add1(1)(2)
res2: Int = 3
scala> add2(1)(2)
res3: Int = 3
हालांकि, वहाँ उनके प्रकारों में एक स्पष्ट अंतर है।
scala> add1(1)
res4: Int => Int = <function1>
scala> add2(1)(_)
res5: Int => Int = <function1>