में नेस्टेड यूएनपीएक्स मैं अक्सर टुपल्स में कई मान इकट्ठा करता हूं, क्योंकि मैं ट्यूपल्स को इसके लिए प्राकृतिक प्रकार मानता हूं। हालांकि, tuples सख्त नहीं हैं। तोजीएचसी
data A
data B =
B !A
data C =
C !(B, B)
data D =
D !B !B
पर विचार -funbox-strict-fields
और अनुकूलन के साथ, unpacks नेस्टेड रहते हैं। क्या C
में tuple C A A
में D
, या बस C B B
के साथ अनपॅक किया जाएगा? यहां जीएचसी-डॉक्टर में एक संदर्भ है: 7.16. Pragmas।
(प्रकार प्रकार-निर्माता ये हैं गैर खाली tuples?)
मैंने अपने प्रश्न में एक त्रुटि तय की: डेटा बी डेटा बी = बी होना चाहिए! ए। तो सी में मुझे अपने स्वयं के विशेष प्रकार का उपयोग करना चाहिए, जिसमें टुपल की जगह सख्त फ़ील्ड हैं? मुझे आशा थी कि जीएचसी टुपल खोजने के बाद अनपॅक करना जारी रखेगा, इसलिए मुझे प्रत्येक क्षेत्र के लिए बहुत से विशेष डेटाटाइप लिखने की जरूरत नहीं है। (लेकिन, चूंकि मैं tuples में मूल्य इकट्ठा करता हूं, मेरे पास शायद मूल्यों के सेट का कुछ अमूर्त विचार है, इसलिए मुझे शायद एक विशेष संस्करण का उपयोग करना चाहिए ...) – telephone
यदि ट्यूपल्स पॉलिमॉर्फिक नहीं होते हैं। मैंने पहले इस समस्या के बारे में लिखा है: http://donsbot.wordpress.com/2009/10/11/self-optimizing-data- संरचनाएं-using-types-to-make-lists-faster/ –
जैसा कि मैंने देखा जीएचसी-डॉक्टर में उदाहरण, डेटाटाइप में सख्त क्षेत्र के रूप में उपयोग की जाने वाली एक जोड़ी चपटा हो जाएगी। – telephone