Display lists

This commit is contained in:
Joscha 2020-12-13 21:04:15 +00:00
parent 0d52c07f68
commit 2d5a8ece55

View file

@ -17,8 +17,14 @@ displayStat :: T.Text -> [Term T.Text] -> T.Text
displayStat name [] = name
displayStat name args = name <> "(" <> T.intercalate ", " (map displayTerm args) <> ")"
displayList :: Term T.Text -> T.Text
displayList (Stat "[|]" [a, b]) = "," <> displayTerm a <> displayList b
displayList (Stat "[]" []) = "]"
displayList t = "|" <> displayTerm t <> "]"
displayTerm :: Term T.Text -> T.Text
displayTerm (Var v) = v
displayTerm (Stat "[|]" [a, b]) = "[" <> displayTerm a <> displayList b
displayTerm (Stat name args) = displayStat name args
displayTerms :: [Term T.Text] -> T.Text