From 352f932485ced82976400de2d01987070ec1dc80 Mon Sep 17 00:00:00 2001 From: Jeremy Wall Date: Wed, 24 Apr 2019 19:19:58 -0500 Subject: [PATCH] FEATURE: Add a chars attribute to the strings.ops module. --- std/strings.ucg | 2 ++ std/tests/strings_test.ucg | 5 +++++ 2 files changed, 7 insertions(+) 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",