From fbca4bd86850b9224f898ef5235e1cb61fb30d13 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Fri, 11 Mar 2022 15:08:49 +0800 Subject: [PATCH] refactor --- src/util/_impl/_sub_str_impl.scad | 5 ----- src/util/sub_str.scad | 9 ++++++--- 2 files changed, 6 insertions(+), 8 deletions(-) delete mode 100644 src/util/_impl/_sub_str_impl.scad diff --git a/src/util/_impl/_sub_str_impl.scad b/src/util/_impl/_sub_str_impl.scad deleted file mode 100644 index 800795dc..00000000 --- a/src/util/_impl/_sub_str_impl.scad +++ /dev/null @@ -1,5 +0,0 @@ -function _sub_str(t, begin, end) = - begin == end ? "" : str(t[begin], _sub_str_impl(t, begin + 1, end)); - -function _sub_str_impl(t, begin, end) = - is_undef(end) ? _sub_str(t, begin, len(t)) : _sub_str(t, begin, end); diff --git a/src/util/sub_str.scad b/src/util/sub_str.scad index 3d93070d..aa2fd6a9 100644 --- a/src/util/sub_str.scad +++ b/src/util/sub_str.scad @@ -8,6 +8,9 @@ * **/ -use <_impl/_sub_str_impl.scad>; - -function sub_str(t, begin, end) = _sub_str_impl(t, begin, end); \ No newline at end of file +function sub_str(t, begin, end) = + let( + ed = is_undef(end) ? len(t) : end, + cum = [for(i = begin, s = t[i]; i < ed; i = i + 1, s = str(s, t[i])) s] + ) + cum[len(cum) - 1]; \ No newline at end of file