aboutsummaryrefslogtreecommitdiff
path: root/neb/std/lists.py
diff options
context:
space:
mode:
Diffstat (limited to 'neb/std/lists.py')
-rw-r--r--neb/std/lists.py23
1 files changed, 11 insertions, 12 deletions
diff --git a/neb/std/lists.py b/neb/std/lists.py
index ae5e56c..0ffa228 100644
--- a/neb/std/lists.py
+++ b/neb/std/lists.py
@@ -26,7 +26,7 @@ def interpretRest(symbol, args, env, ns):
# TODO do we know it's not evaluated?
return List(args[0].args[1:]) # we don't evaluate the remainder of the list
-rest_func = Builtin("rest", interpretRest, [Arg("arg", TypeEnum.LIST)], return_type=Type(":list"))
+rest_func = Builtin("rest", interpretRest, [Arg("arg", TypeEnum.LIST)], return_type=Type(":[]"))
rest_multi = MultiFunction("rest")
rest_multi.register(rest_func)
LISTS.register("rest", rest_multi)
@@ -36,7 +36,7 @@ def interpretListReverse(symbol, args, env, ns):
new_args.reverse()
return List(new_args)
-reverse_func = Builtin("reverse", interpretListReverse, [Arg("list", TypeEnum.LIST)], return_type=Type(":list"))
+reverse_func = Builtin("reverse", interpretListReverse, [Arg("list", TypeEnum.LIST)], return_type=Type(":[]"))
reverse_multi = MultiFunction("reverse")
reverse_multi.register(reverse_func)
LISTS.register("reverse", reverse_multi)
@@ -54,7 +54,7 @@ def interpretShuf(symbol, args, env, ns):
random.shuffle(items)
return List(items)
-shuf_func = Builtin("shuf", interpretShuf, [Arg("list", TypeEnum.LIST)], return_type=Type(":list"))
+shuf_func = Builtin("shuf", interpretShuf, [Arg("list", TypeEnum.LIST)], return_type=Type(":[]"))
shuf_multi = MultiFunction("shuf")
shuf_multi.register(shuf_func)
LISTS.register("shuf", shuf_multi)
@@ -95,10 +95,9 @@ def interpretSlice(symbol, args, env, ns):
slice_list_arg = Arg("list", TypeEnum.LIST)
slice_idx_arg = Arg("idx", TypeEnum.INT)
-#slice_length_arg = Arg("length", TypeEnum.INT, optional=True)
slice_length_arg = Arg("length", TypeEnum.INT)
-slice_nolength_func = Builtin("slice", interpretSlice, [slice_list_arg, slice_idx_arg], return_type=Type(":list"))
-slice_length_func = Builtin("slice", interpretSlice, [slice_list_arg, slice_idx_arg, slice_length_arg], return_type=Type(":list"))
+slice_nolength_func = Builtin("slice", interpretSlice, [slice_list_arg, slice_idx_arg], return_type=Type(":[]"))
+slice_length_func = Builtin("slice", interpretSlice, [slice_list_arg, slice_idx_arg, slice_length_arg], return_type=Type(":[]"))
slice_multi = MultiFunction("slice")
slice_multi.register(slice_nolength_func)
slice_multi.register(slice_length_func)
@@ -110,7 +109,7 @@ def interpretAppend(symbol, args, env, ns):
items = lst.args[:]
return List(items + [val])
-append_func = Builtin("append", interpretAppend, [Arg("list", TypeEnum.LIST), Arg("item", TypeEnum.ANY)], return_type=Type(":list"))
+append_func = Builtin("append", interpretAppend, [Arg("list", TypeEnum.LIST), Arg("item", TypeEnum.ANY)], return_type=Type(":[]"))
append_multi = MultiFunction("append")
append_multi.register(append_func)
LISTS.register("append", append_multi)
@@ -125,7 +124,7 @@ def interpretRemove(symbol, args, env, ns):
out.append(arg)
return List(out)
-remove_func = Builtin("remove", interpretRemove, [Arg("list", TypeEnum.LIST), Arg("key", TypeEnum.ANY)], return_type=Type(":list"))
+remove_func = Builtin("remove", interpretRemove, [Arg("list", TypeEnum.LIST), Arg("key", TypeEnum.ANY)], return_type=Type(":[]"))
remove_multi = MultiFunction("remove")
remove_multi.register(remove_func)
LISTS.register("remove", remove_multi)
@@ -143,7 +142,7 @@ def interpretZip(symbol, args, env, ns):
return List(out)
zip_arg = Arg("list", TypeEnum.LIST)
-zip_func = Builtin("zip", interpretZip, [zip_arg, zip_arg], return_type=Type(":list"))
+zip_func = Builtin("zip", interpretZip, [zip_arg, zip_arg], return_type=Type(":[]"))
zip_multi = MultiFunction("zip")
zip_multi.register(zip_func)
LISTS.register("zip", zip_multi)
@@ -151,7 +150,7 @@ LISTS.register("zip", zip_multi)
def interpretList(symbol, args, env, ns):
return List(args)
-list_func = Builtin("list", interpretList, [], Arg("item", TypeEnum.ANY), Type(":list"))
+list_func = Builtin("list", interpretList, [], Arg("item", TypeEnum.ANY), Type(":[]"))
list_multi = MultiFunction("list")
list_multi.register(list_func)
LISTS.register("list", list_multi)
@@ -181,7 +180,7 @@ def interpretPrepend(symbol, args, env, ns):
items = lst.args[:]
return List([val] + items)
-prepend_func = Builtin("prepend", interpretPrepend, [Arg("list", TypeEnum.LIST), Arg("item", TypeEnum.ANY)], return_type=Type(":list"))
+prepend_func = Builtin("prepend", interpretPrepend, [Arg("list", TypeEnum.LIST), Arg("item", TypeEnum.ANY)], return_type=Type(":[]"))
prepend_multi = MultiFunction("prepend")
prepend_multi.register(prepend_func)
LISTS.register("prepend", prepend_multi)
@@ -189,7 +188,7 @@ LISTS.register("prepend", prepend_multi)
def interpretListMost(symbol, args, env, ns):
return List(args[0].args[:-1])
-most_func = Builtin("most", interpretListMost, [Arg("list", TypeEnum.LIST)], return_type=Type(":list"))
+most_func = Builtin("most", interpretListMost, [Arg("list", TypeEnum.LIST)], return_type=Type(":[]"))
most_multi = MultiFunction("most")
most_multi.register(most_func)
LISTS.register("most", most_multi)