我正在試圖創建Z/n環(就像正常的算術,但是取模一些整數)。一個示例是Z4:模板haskell中的數據構造函數
instance Additive.C Z4 where
zero = Z4 0
(Z4 x) + (Z4 y) = Z4 $ (x + y) `mod` 4
等等。我希望能夠快速生成這些東西,而且我認爲使用模板haskell的方法就是這樣。理想情況下,我只想去$(makeZ 4)
,並讓它像我上面定義的Z4
一樣代碼。
雖然我有很多麻煩。當我做genData n = [d| data $n = $n Integer]
時,我得到「數據/新類型聲明中的解析錯誤」。如果我不使用變量,它確實有效:[d| data Z5 = Z5 Integer |]
,這意味着我對變量做了一些奇怪的事情。我不確定是什麼;我試圖通過newName構建它們,但似乎也沒有工作。
任何人都可以幫助我在這裏發生了什麼?
我不是一個模板哈斯克爾嚮導,但我打賭誰是希望看到你的模板Haskell代碼的人。 –