diff --git a/std/strings.ucg b/std/strings.ucg index 8dd17c0..f56a7de 100644 --- a/std/strings.ucg +++ b/std/strings.ucg @@ -18,12 +18,14 @@ let ops = module { str="", } => ({len=len, str=str, + chars=chars, split_on=split_on, split_at=split_at, substr=substr, }) { let len = import "std/lists.ucg".len(mod.str); let str = mod.str; + let chars = reduce(func(acc, char) => acc + [char], [], mod.str); let split_on = module{ on=" ", diff --git a/std/tests/strings_test.ucg b/std/tests/strings_test.ucg index 192d5c6..aaa8e27 100644 --- a/std/tests/strings_test.ucg +++ b/std/tests/strings_test.ucg @@ -28,6 +28,11 @@ assert asserts.equal{ right = 7, }; +assert asserts.equal{ + left = str_class.chars, + right = ["f", "o", "o", " ", "b", "a", "r"], +}; + assert asserts.equal{ left = str_class.substr{start=1}.str, right = "oo bar",