diff options
Diffstat (limited to 'interpreter.py')
| -rw-r--r-- | interpreter.py | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/interpreter.py b/interpreter.py index da8cc96..7f28c63 100644 --- a/interpreter.py +++ b/interpreter.py @@ -534,18 +534,18 @@ GLOBALS.register("rest", Builtin(interpretRest, [Arg("arg", TypeEnum.LIST, False def interpretMap(symbol, args, env, ns): # TODO: to support lambdas, we can't assume the func is defined func = args[0] - if not isinstance(func, Symbol): - raise InterpretPanic(symbol, "requires a symbol as its first argument", func) + if not isinstance(func, Function): + raise InterpretPanic(symbol, "requires a :func as its first argument", func) lst = evaluate(args[1], env, ns) if not isinstance(lst, List): raise InterpretPanic(symbol, "requires a :list as its second argument", lst) out = [] for arg in lst.args: - ev = evaluate(List([func, arg]), env, ns) + ev = func.call(List([func, arg]), env, ns) out.append(ev) return List(out, True) -GLOBALS.register("map", Builtin(interpretMap, [Arg("func", TypeEnum.ANY, False, True), Arg("list", TypeEnum.LIST, False, False)])) +GLOBALS.register("map", Builtin(interpretMap, [Arg("func", TypeEnum.ANY, False, False), Arg("list", TypeEnum.LIST, False, False)])) def interpretZip(symbol, args, env, ns): z1 = args[0] |
