diff options
Diffstat (limited to 'neb/std/core.py')
| -rw-r--r-- | neb/std/core.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/neb/std/core.py b/neb/std/core.py index cd6a112..8d58bd7 100644 --- a/neb/std/core.py +++ b/neb/std/core.py @@ -1,4 +1,4 @@ -from .. import TypeEnum, Environment, Arg, Builtin, UserFunction, evaluate, interpret, parse, lex, InterpretPanic, TypeWrap, Function, UserType, NebSyntax +from .. import TypeEnum, Environment, Arg, Builtin, UserFunction, evaluate, interpret, parse, lex, InterpretPanic, TypeWrap, Function, UserType, NebSyntax, MultiFunction from ..structs import * from pathlib import Path @@ -168,7 +168,14 @@ def interpretFunc(symbol, args, env, ns): # add the name to the function func.name = name - env.register(name, func) + if env.contains(name) and isinstance(env.get(name), MultiFunction): + env.register(name, env.get(name).register(func)) + else: + mf = MultiFunction("name") + mf.register(func) + env.register(name, mf) + + #env.register(name, func) return List([]) CORE.register("func", NebSyntax("func", interpretFunc, [def_name_arg, lambda_args_arg, lambda_body_arg], lambda_body_arg, Type(":list"))) |
