aboutsummaryrefslogtreecommitdiff
path: root/neb
diff options
context:
space:
mode:
authormryouse2022-07-20 03:00:54 +0000
committermryouse2022-07-20 03:00:54 +0000
commita85b4e08e14ee795e9636c4a2c18edae9cfc5581 (patch)
treee539b69dcd81f34bb963e26b6787ea27e141a0b8 /neb
parentff9120b1e7777b001b02de3c5341f1af3e93d947 (diff)
WIP wrap user functions in a multifunc
Diffstat (limited to 'neb')
-rw-r--r--neb/std/core.py11
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")))