From 2154c4fd811c5669c217593250476dda860aac36 Mon Sep 17 00:00:00 2001 From: mryouse Date: Thu, 14 Jul 2022 02:19:33 +0000 Subject: bugfix: let things that aren't symbols be called --- neb/__init__.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'neb/__init__.py') diff --git a/neb/__init__.py b/neb/__init__.py index e3167b9..e93f0dd 100644 --- a/neb/__init__.py +++ b/neb/__init__.py @@ -41,7 +41,14 @@ def evaluate(expr, env, ns=None): elif len(expr.args) == 0: return expr - if not isinstance(expr.args[0], Symbol): + elif isinstance(expr.args[0], Expr): + ev = evaluate(expr.args[0], env, ns) + return evaluate(Expr([ev] + expr.args[1:]), env, ns) + + elif isinstance(expr.args[0], Callable): + return expr.args[0].call(expr, env, ns) + + elif not isinstance(expr.args[0], Symbol): raise NebPanic("can't evaluate without a symbol") name = expr.args[0].name if env.contains(name): -- cgit v1.2.3