diff --git a/src/util/_impl/_dedup_impl.scad b/src/util/_impl/_dedup_impl.scad index 59834e88..6ba75dea 100644 --- a/src/util/_impl/_dedup_impl.scad +++ b/src/util/_impl/_dedup_impl.scad @@ -4,9 +4,9 @@ function _dedup(elems, leng, buckets, eq, hash, bucket_numbers) = let( end = leng - 1, n_buckets_lt = [ - for(i = 0, n_buckets = _dedup_add(buckets, [i, elems[i]], eq, hash, bucket_numbers); - i < end; - i = i + 1, n_buckets = _dedup_add(n_buckets, [i, elems[i]], eq, hash, bucket_numbers)) + for(i = 0, n_buckets = _dedup_add(buckets, [i, elems[i]], eq, hash, bucket_numbers), is_continue = i < end; + is_continue; + i = i + 1, is_continue = i < end, n_buckets = is_continue ? _dedup_add(n_buckets, [i, elems[i]], eq, hash, bucket_numbers) : n_buckets) n_buckets ] ) diff --git a/src/util/map/_impl/_hashmap_impl.scad b/src/util/map/_impl/_hashmap_impl.scad index 2c288384..59776f9b 100644 --- a/src/util/map/_impl/_hashmap_impl.scad +++ b/src/util/map/_impl/_hashmap_impl.scad @@ -4,9 +4,9 @@ function _hashmap(kv_lt, leng, buckets, b_numbers, eq, hash) = let( end = leng - 1, n_buckets_lt = [ - for(i = 0, n_buckets = _hashmap_put(buckets, b_numbers, kv_lt[i][0], kv_lt[i][1], eq, hash); - i < end; - i = i + 1, n_buckets = _hashmap_put(n_buckets, b_numbers, kv_lt[i][0], kv_lt[i][1], eq, hash)) + for(i = 0, n_buckets = _hashmap_put(buckets, b_numbers, kv_lt[i][0], kv_lt[i][1], eq, hash), is_continue = i < end; + is_continue; + i = i + 1, is_continue = i < end, n_buckets = is_continue ? _hashmap_put(n_buckets, b_numbers, kv_lt[i][0], kv_lt[i][1], eq, hash) : n_buckets) n_buckets ] ) diff --git a/src/util/set/_impl/_hashset_impl.scad b/src/util/set/_impl/_hashset_impl.scad index 70a60373..c9958ae5 100644 --- a/src/util/set/_impl/_hashset_impl.scad +++ b/src/util/set/_impl/_hashset_impl.scad @@ -4,9 +4,9 @@ function _hashset(lt, leng, buckets, b_numbers, eq, hash) = let( end = leng - 1, n_buckets_lt = [ - for(i = 0, n_buckets = _hashset_add(buckets, b_numbers, lt[i], eq, hash); - i < end; - i = i + 1, n_buckets = _hashset_add(n_buckets, b_numbers, lt[i], eq, hash)) + for(i = 0, n_buckets = _hashset_add(buckets, b_numbers, lt[i], eq, hash), is_continue = i < end; + is_continue; + i = i + 1, is_continue = i < end, n_buckets = is_continue ? _hashset_add(n_buckets, b_numbers, lt[i], eq, hash) : n_buckets) n_buckets ] )