2010-04-07 12 views
9

में इम्युलेटिंग वैरैडिक टेम्पलेट्स मान लीजिए कि आप स्केल में variadic templates (जेनेरिक क्लास के लिए एन टाइप पैरामीटर को परिभाषित करने की क्षमता) जैसे कुछ करना चाहते हैं।स्कैला

उदाहरण के लिए आप Tuple2[+T1, +T2] और Tuple3[+T1, +T2, +T3] लेकिन Tuple[T*] को परिभाषित नहीं करना चाहते हैं।

क्या HLists से अन्य विकल्प हैं जो टुपल, उत्पाद और फ़ंक्शन का समर्थन करेंगे?

+2

मुझे लगता है कि आप एचएलिस्ट का अपना संस्करण रोल कर सकते हैं, लेकिन क्यों? क्या आप इंगित कर सकते हैं कि आपका अनुमानित विकल्प एचएलिस्ट से अलग कैसे होगा? –

+0

उपयोगकर्ता पक्ष पर टाइप परिभाषा मेरे स्वाद के लिए थोड़ा जटिल है। एक आदर्श समाधान एक अधिक प्राकृतिक प्रकार की परिभाषा टुपल [टी 1, टी 2, टी 3] की अनुमति देगा जैसे टुपलेक्स पहले ही स्कैला लिब में करता है। इसके अतिरिक्त, इसे फ़ंक्शन और उत्पाद जैसे अन्य प्रकारों का समर्थन करना चाहिए। –

+0

लेकिन स्कैला पहले से ही ऑफर करता है, और एचएलआईस्ट उस जटिलता को कम करने के लिए कुछ वाक्य रचनात्मक चीनी का उपयोग करता है। उदाहरण के लिए, एचएलआईटी लिंक से इस प्रकार की परिभाषा देखें: 'वैल सूची: Int :: स्ट्रिंग :: बूलियन :: एचएनआईएल = ... '। –

उत्तर

3

फिलहाल स्कैला में कोई वाक्य रचनात्मक निर्माण नहीं है जो आप सुझाव दे रहे हैं। यही कारण है कि 22 ट्यूपल क्लासेस (टुपले 2, टुपले 3, ..., टुपल 22) और विभिन्न फंक्शन क्लासेस (फंक्शन 0, ...) भी हैं।

+5

प्रश्न का तात्पर्य है कि भाषा निर्माण नहीं है। –