# apply list
ast = macroexpand(ast, env)
- if not types._list_Q(ast): return ast
+ if not types._list_Q(ast):
+ return eval_ast(ast, env)
if len(ast) == 0: return ast
a0 = ast[0]
return PRINT(EVAL(READ(str), repl_env))
# core.py: defined using python
-for k, v in core.ns.items(): repl_env.set(k, v)
-repl_env.set('eval', lambda ast: EVAL(ast, repl_env))
-repl_env.set('*ARGV*', types._list(*sys.argv[2:]))
+for k, v in core.ns.items(): repl_env.set(types._symbol(k), v)
+repl_env.set(types._symbol('eval'), lambda ast: EVAL(ast, repl_env))
+repl_env.set(types._symbol('*ARGV*'), types._list(*sys.argv[2:]))
# core.mal: defined using the language itself
REP("(def! not (fn* (a) (if a false true)))")