2
私はHaskellの型を表現するタイプがあります。他のリテラルは、接頭辞を印刷している間ハスケル:プリティプリント中置とプレフィックス
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")
私はHaskellはないとして、それを印刷するには、すなわち、記号であるリテラルは中置を印刷しています。必要なときに も括弧を追加する必要があります。
show aToB = "a -> b"
show maybeIOInt = "Maybe (IO Int)"
show ast = ???
どのように私はこれを実装することができますか?
あなたはちょうど私が理解し、あなた自身の啓発のためにこれをやっている場合は、それ以外の私は[Haskellの-SRC-EXTS](httpsにあなたを指すようになります/ /hackage.haskell.org/package/haskell-src-exts-1.19.1/docs/Language-Haskell-Exts-Pretty.html)には、かなりのプリンタとHaskellコード用の正確なプリンタがあります。 –