From ac7a6c08ebba80c6c5d8b4d8ce79d06a6c86d9ee Mon Sep 17 00:00:00 2001 From: mryouse Date: Wed, 3 Aug 2022 01:20:59 +0000 Subject: bugfix: :[] return types in std --- neb/std/lists.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'neb/std/lists.py') 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) -- cgit v1.2.3