Skip to content

Instantly share code, notes, and snippets.

@deque-blog
Created January 20, 2017 21:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save deque-blog/f80af44d8603e1c59930935946b0f37a to your computer and use it in GitHub Desktop.
Save deque-blog/f80af44d8603e1c59930935946b0f37a to your computer and use it in GitHub Desktop.
partial :: Env -> Expr -> Expr
partial env = cata (compAll [optimizeMul, optimizeAdd, replaceKnownVars env])
eval :: Env -> Expr -> Int
eval env expr =
case partial env expr of
(Fix (Cst n)) -> n
e -> error $ "Missing vars: " ++ show (dependencies e)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment