में एक प्रकार निर्माता के लिए एक स्ट्रिंग में कनवर्ट करें:वहाँ जो कुछ इस तरह करता है हास्केल में एक समारोह है कि अगर किसी को भी पता है हास्केल
"Int" -> Int
"String" -> String
"Bool" -> Bool
अर्थात्। यह एक प्रकार के कन्स्ट्रक्टर नाम का स्ट्रिंग प्रस्तुति लेता है, और अभिव्यक्ति में और पैटर्न में दोनों को वास्तविक प्रकार के कन्स्ट्रक्टर में परिवर्तित करता है।
संपादित करें: मेरे समग्र लक्ष्य की तरह कुछ सरल करने के लिए है: एक ही पैटर्न मैच में
transExp (Add exp1 exp2) vars
= transExp exp1 vars ++ transExp exp2 vars ++ [IAdd]
transExp (Sub exp1 exp2) vars
= transExp exp1 vars ++ transExp exp2 vars ++ [ISub]
, तो मूल रूप से परिवर्तित एक स्ट्रिंग में जोड़े या उप, सामने करने के लिए एक "मैं" जोड़ने के लिए, और परिवर्तित यह एक प्रकार के लिए वापस।
क्या यह भी संभव है? एक संकलन-समय अवधारणा के प्रकार नहीं हैं? आप किस प्रकार के काम की तलाश कर रहे हैं? –
मुझे नहीं पता कि यह संभव है या नहीं, मुझे लगता है कि इसमें स्ट्रिंग -> ए टाइप होगा, लेकिन मुझे वास्तव में यकीन नहीं है ... – Jack
तब टेम्पलेट हैकेल पर एक नज़र डालें। इसके अलावा 'IAdd' एक प्रकार का नहीं बल्कि एक प्रकार का कन्स्ट्रक्टर है - जो भ्रामक था। – nponeccop