From 21c00b52d3c0944fd197566757174aacd23d9d1b Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Fri, 11 Mar 2022 15:19:44 +0800 Subject: [PATCH] refactor --- src/util/_impl/_shuffle_impl.scad | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/util/_impl/_shuffle_impl.scad b/src/util/_impl/_shuffle_impl.scad index edb82f36..4f7101ec 100644 --- a/src/util/_impl/_shuffle_impl.scad +++ b/src/util/_impl/_shuffle_impl.scad @@ -1,4 +1,7 @@ use <../swap.scad>; -function _shuffle(lt, indices, leng, i = 0) = - i == leng ? lt : _shuffle(swap(lt, i, indices[i]), indices, leng, i + 1); \ No newline at end of file +function _shuffle(lt, indices, leng) = + let(end = len(lt) - 1) + end == 0 ? lt : + let(cum = [for(i = 0, s = swap(lt, i, indices[i]); i < end; i = i + 1, s = swap(s, i, indices[i])) s]) + swap(cum[len(cum) - 1], end, indices[end]); \ No newline at end of file