2
나는 하스켈 타입 표현하는 유형이 : 나는 하스켈 즉,하지로 인쇄 할하스켈 : 예쁜 인쇄 중위와 접두사
data Type
= TApp Type Type
| TVar Name
| TLit Name
infixl 8 `TApp`
-- a -> b
aToB = TLit "Fun" `TApp` TVar "a" `TApp` TVar "b"
-- Maybe (IO Int)
maybeIOInt = TLit "Maybe" `TApp` (TLit "IO" `TApp` TLit "Int")
, 중위를 인쇄 상징 리터럴을하는 동안 다른 문자 인쇄 접두사 . 필요한 경우 괄호를 추가해야합니다.
show aToB = "a -> b"
show maybeIOInt = "Maybe (IO Int)"
show ast = ???
어떻게 구현할 수 있습니까?
그냥 이해 자신의 함양을 위해이 일을하는 경우 :
전자를 사용하여 (그리고
type Name = String
가정) /hackage.haskell.org/package/haskell-src-exts-1.19.1/docs/Language-Haskell-Exts-Pretty.html) 하스켈 코드에 대한 예쁜 프린터와 정확한 프린터를 모두 가지고 있습니다. –