2012-04-10 17 views
24

मैं निम्नलिखित स्केला वर्ग परिभाषा (एक समाचार पत्र में पाया जाता है), श्रेणियों मॉडलिंग है:स्काला ~> (एक से अधिक टिल्ड) ऑपरेटर

trait Category[~>[_, _]] { 
    def compose[A, B, C] 
    (f: B ~> C) 
    (g: A ~> B) 
    : A ~> C 
    def id[A]: A ~> A 
} 

कोई मुझे समझा सकता है क्या '~>' श्रेणी में इसका मतलब है प्रकार पैरामीटर, और तरीकों में वापसी प्रकार? या मुझे एक संसाधन है कि यह बताता करने के लिए प्रत्यक्ष ... मैं स्काला (जावा से आ रहा है) के लिए नया हूँ, इसलिए मुझे माफ कर दो कि अगर कुछ एक स्केला उपयोगकर्ता पता होना चाहिए है ... अग्रिम धन्यवाद

उत्तर

26

~>Category के प्रकार-पैरामीटर के लिए प्लेसहोल्डर-नाम है। में T की तरह।

इसके अतिरिक्त, स्कैला वाक्यविन्यास आपको के लिए शॉर्टेंड के रूप में B ~> C लिखने की अनुमति देता है।

हो सकता है कि बातें, साफ मिलता है यदि आप इसका नाम बदलना:

trait Category[Mapping[_, _]] { 
    def compose[A, B, C](f: Mapping[B, C])(g: Mapping[A, B]): Mapping[A, C] 
    def id[A]: Mapping[A, A] 
} 
+0

अब यह स्पष्ट है ... मैं मैं अजीब चार उपयोग करने के लिए बातें (जावा के विपरीत) नाम के लिए मुक्त हो आदत हो जाएगा लगता है। मैंने वास्तव में सोचा कि '~>' का मतलब कुछ खास है, लेकिन इसे किसी भी चीज़ से बदला जा सकता है क्योंकि मैं इसे सही ढंग से समझता हूं..बहुत बहुत धन्यवाद! – Andrea

+0

हां, यह पूरी तरह से मनमाना है (निश्चित रूप से पहचानकर्ताओं के लिए स्कैला के नामकरण नियमों के भीतर)। – Debilski

+8

वैसे: कारण "ऑपरेटर" चुना गया था, यानी अक्षरों के अक्षरों के बजाय ऑपरेटर वर्ण, उम्मीद थी कि श्रेणी सिद्धांत के डोमेन में ~> आसानी से "morphism" (उर्फ "मैपिंग" की अवधारणा में अनुवाद करता है) , "तीर", आदि)। आमतौर पर आपको ऑपरेटरों के साथ सावधान रहना चाहिए। –

संबंधित मुद्दे