क्या स्केला घोषणा नीचे का क्या मतलब है:क्या मतलब है 'MyType = इंट => बूलियन'
type MyType = Int => Boolean
यहाँ मेरी समझ है:
मैं एक नए प्रकार 'MyType' घोषित रहा हूँ, लेकिन क्या उच्च आदेश समारोह का क्या मतलब है 'इंट => बूलियन'
क्या स्केला घोषणा नीचे का क्या मतलब है:क्या मतलब है 'MyType = इंट => बूलियन'
type MyType = Int => Boolean
यहाँ मेरी समझ है:
मैं एक नए प्रकार 'MyType' घोषित रहा हूँ, लेकिन क्या उच्च आदेश समारोह का क्या मतलब है 'इंट => बूलियन'
यह नहीं इतना एक नए प्रकार उर्फ की घोषणा के रूप में एक नया प्रकार की घोषणा की है। वे अभी भी वही प्रकार हैं: लेकिन उपनाम आपको इसे थोड़ा और अधिक संक्षेप में लिखने देता है।
Int => Boolean
एक ऐसा कार्य है जो एक तर्क, एक इंट लेता है, और एक बूलियन देता है।
उदाहरण के लिए, Int => Boolean
हो सकता था "अधिक से अधिक से अधिक 5" की तरह एक समारोह:
type MyType = Int => Boolean
val greaterThan5: MyType = (x: Int) => x > 5
greaterThan5(7) // true
आप सही हैं, निम्नलिखित compiles:
type MyType = Int => Boolean
def positive(x: Int) = x > 0
val fun: MyType = positive
fun(42) //yields true
यहाँ आप घोषित प्रकार उर्फ कह रही है कि MyType
Int
ले रहे फ़ंक्शन के समतुल्य और Boolean
लौटा रहा है। फिर आप इस तरह की घोषणा से मेल खाने वाली विधि बनाते हैं। अंत में आप MyType
प्रकार के चर के लिए इस विधि को असाइन करते हैं। यह संकलित करता है और ठीक काम करता है।
ध्यान दें कि यह सिर्फ एक उर्फ , नहीं एक नए प्रकार है:
trait MyType2 extends (Int => Boolean)
val fun2: MyType2 = positive _
error: type mismatch;
found : Int => Boolean
required: MyType2
val fun2: MyType2 = positive _
^
ध्यान दें कि 'इंट => Boolean' _not_ एक उच्च आदेश समारोह (टुकड़ा [Coursera के] की वजह से उपजी नहीं है, भले ही है (http://www.coursera.org/course/progfun) "सप्ताह 2: उच्च आदेश कार्य" असाइनमेंट ;-)) – netzwerg
@netzwerg हाँ, ऐसा लगता है कि मुझे 'सरल' सामान भी मुश्किल लगता है। – user701254
चिंता न करें, यह वास्तव में सरल है: उच्च आदेश फ़ंक्शन ऐसे कार्य होते हैं जो या तो उनके इनपुट पैरामीटर के रूप में एक और फ़ंक्शन लेते हैं, या किसी अन्य फ़ंक्शन को वापस/आउटपुट करते हैं ([विकिपीडिया] (http://en.wikipedia.org/wiki/Higher -order_function)) – netzwerg