2
내가 그것을 위해, 나는 다음과 같은 식을 정의 할 GADTs을 사용하고, 하스켈에서 DSL을 구축하기 위해 AST를 작성하고 있었어요 그러나하스켈에서 DSL 형식을 정의하는 방법은 무엇입니까?
data Expr a where
I :: Int -> Expr Int
B :: Bool -> Expr Bool
Add :: Expr Int -> Expr Int -> Expr Int
Mul :: Expr Int -> Expr Int -> Expr Int
Eq :: Expr Int -> Expr Int -> Expr Bool
을, 나는 추가 및 도난 등의 표현에 대한 싶습니다 또한 Float 및 Double 유형의 다른 숫자 값과도 작업 할 수 있습니다. 어떻게 그러한 결과를 얻을 수 있습니까?
- '추가 :: 민 A => EXPR A -> EXPR A -> EXPR A' –
@AnupamJain 아마 해답이 될 것을 – jkeuhlen