Skip to content

Instantly share code, notes, and snippets.

@kuribas
Created July 21, 2019 11:45
Show Gist options
  • Select an option

  • Save kuribas/e765dcf99051bac922f0a29af39d122c to your computer and use it in GitHub Desktop.

Select an option

Save kuribas/e765dcf99051bac922f0a29af39d122c to your computer and use it in GitHub Desktop.
simplify sum
data Sum = Plus Sum Sum
| Lit Integer
| Var String
deriving Show
simplify :: Sum -> Sum
simplify (Var a) = Var a
simplify (Lit a) = Lit a
simplify (Plus (Lit 0) a) = simplify a
simplify (Plus a (Lit 0)) = simplify a
simplify (Plus a b) = Plus (simplify a) (simplify b)
simplifyEq :: Equals -> Equals
simplifyEq (Equals v s) = Equals v (simplify s)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment