diff options
| -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"))) | 
