git @ Cat's Eye Technologies Robin / 74261ba
Begin simplifying evalArgs. Chris Pressey 5 years ago
1 changed file(s) with 9 addition(s) and 12 deletion(s). Raw diff Collapse all Expand all
2727
2828 -- formals actuals origActuals env i wierd-cc
2929 evalArgs :: [Expr] -> [Expr] -> [Expr] -> Env Expr -> IEnv Expr -> (Env Expr -> Expr) -> Expr
30 evalArgs formals actuals origActuals env i cc =
31 evalArgs' formals actuals origActuals env i cc
32 where
33 evalArgs' [] [] _ _ _ cc =
34 cc Env.empty
35 evalArgs' ((Symbol formal):formals) (actual:actuals) origActuals env i cc =
36 eval i env actual (\value ->
37 evalArgs' formals actuals origActuals env i (\nenv ->
38 cc $ Env.insert formal value nenv))
39 evalArgs' _ _ origActuals _ i cc =
40 raise i $ errMsg "illegal-arguments" $ List origActuals
30 evalArgs [] [] _ _ _ cc =
31 cc Env.empty
32 evalArgs ((Symbol formal):formals) (actual:actuals) origActuals env i cc =
33 eval i env actual (\value ->
34 evalArgs formals actuals origActuals env i (\nenv ->
35 cc $ Env.insert formal value nenv))
36 evalArgs _ _ origActuals _ i cc =
37 raise i $ errMsg "illegal-arguments" $ List origActuals
4138
4239 -- formals actuals origActuals envExpr i wierd-cc
4340 evalArgsExpr :: [Expr] -> [Expr] -> [Expr] -> Expr -> IEnv Expr -> (Env Expr -> Expr) -> Expr
4643 Right env ->
4744 evalArgs formals actuals origActuals env i cc
4845 Left (msg, value) ->
49 raise i (errMsg msg value)
46 raise i $ errMsg msg value
5047
5148 evalTwoNumbers :: (Int32 -> Int32 -> Expr) -> Evaluable
5249 evalTwoNumbers fn i env (List [xexpr, yexpr]) cc =