में डेटा कन्स्ट्रक्टर मैं रिंग जेड/एन (सामान्य अंकगणित की तरह, लेकिन मॉड्यूल कुछ पूर्णांक) बनाने की कोशिश कर रहा हूं। एक उदाहरण उदाहरण Z4:टेम्पलेट हैकेल
instance Additive.C Z4 where
zero = Z4 0
(Z4 x) + (Z4 y) = Z4 $ (x + y) `mod` 4
और इसलिए अंगूठी के लिए। मैं इन चीजों को जल्दी से उत्पन्न करने में सक्षम होना चाहता हूं, और मुझे लगता है कि ऐसा करने का तरीका टेम्पलेट हैकेल के साथ है। आदर्श रूप में मैं बस $(makeZ 4)
पर जाना चाहता हूं और इसे ऊपर परिभाषित Z4
के लिए कोड थूकना चाहता हूं।
हालांकि मुझे इसके साथ बहुत परेशानी हो रही है। जब मैं genData n = [d| data $n = $n Integer]
करता हूं तो मुझे "डेटा/न्यूटाइप घोषणा में पार्स त्रुटि" मिलती है। यह काम करता है अगर मैं चर का उपयोग नहीं करता हालांकि: [d| data Z5 = Z5 Integer |]
, जिसका अर्थ यह है कि मैं चर के साथ अजीब कुछ कर रहा हूं। मुझे यकीन नहीं है कि क्या है; मैंने उन्हें नए नाम के माध्यम से बनाने की कोशिश की और ऐसा लगता है कि यह भी काम नहीं कर रहा था।
कोई भी यहां क्या हो रहा है इसके साथ मेरी सहायता कर सकता है?
मैं टेम्पलेट हास्केल विज़ार्ड नहीं हूं, लेकिन मैं उन लोगों को सट्टेबाजी कर रहा हूं जो आपके टेम्पलेट हास्केल कोड को देखना चाहते हैं। –