링을 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을 통해 그것들을 생성하려고 시도했으나 그것도 작동하지 않았다.
여기에 무슨 일이 일어나는지 누군가가 도와 줄 수 있습니까?
나는 템플릿 하스켈 마법사 아니지만, 나는 당신의 템플릿 하스켈 코드를보고 싶은 것입니다 사람들을 걸거야. –