mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-14 10:44:48 +02:00
refactor
This commit is contained in:
@@ -19,11 +19,7 @@ function dedup(lt, eq = function(e1, e2) e1 == e2, hash = function(e) _str_hash(
|
|||||||
b_numbers = is_undef(number_of_buckets) ? ceil(sqrt(leng_lt)) : number_of_buckets,
|
b_numbers = is_undef(number_of_buckets) ? ceil(sqrt(leng_lt)) : number_of_buckets,
|
||||||
buckets = [for(i = [0:b_numbers - 1]) []],
|
buckets = [for(i = [0:b_numbers - 1]) []],
|
||||||
deduped = _dedup(lt, leng_lt, buckets, eq, hash, b_numbers),
|
deduped = _dedup(lt, leng_lt, buckets, eq, hash, b_numbers),
|
||||||
i_elem_lt = [
|
i_elem_lt = [for(bucket = deduped) each bucket],
|
||||||
for(bucket = deduped)
|
|
||||||
for(i_elem = bucket)
|
|
||||||
i_elem
|
|
||||||
],
|
|
||||||
sorted = sort(i_elem_lt, by = function(e1, e2) e1[0] - e2[0])
|
sorted = sort(i_elem_lt, by = function(e1, e2) e1[0] - e2[0])
|
||||||
)
|
)
|
||||||
[for(i_elem = sorted) i_elem[1]];
|
[for(i_elem = sorted) i_elem[1]];
|
||||||
|
@@ -2,5 +2,8 @@ use <_hashmap_put_impl.scad>;
|
|||||||
|
|
||||||
function _hashmap(kv_lt, leng, buckets, b_numbers, eq, hash, i = 0) =
|
function _hashmap(kv_lt, leng, buckets, b_numbers, eq, hash, i = 0) =
|
||||||
i == leng ? buckets :
|
i == leng ? buckets :
|
||||||
let(n_buckets = _hashmap_put(buckets, b_numbers, kv_lt[i][0], kv_lt[i][1], eq, hash))
|
let(
|
||||||
|
kv_lt_i = kv_lt[i],
|
||||||
|
n_buckets = _hashmap_put(buckets, b_numbers, kv_lt_i[0], kv_lt_i[1], eq, hash)
|
||||||
|
)
|
||||||
_hashmap(kv_lt, leng, n_buckets, b_numbers, eq, hash, i + 1);
|
_hashmap(kv_lt, leng, n_buckets, b_numbers, eq, hash, i + 1);
|
@@ -8,8 +8,4 @@
|
|||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
|
|
||||||
function hashmap_entries(map) = [
|
function hashmap_entries(map) = [for(bucket = map) each bucket];
|
||||||
for(bucket = map)
|
|
||||||
for(kv = bucket)
|
|
||||||
kv
|
|
||||||
];
|
|
@@ -10,7 +10,4 @@
|
|||||||
|
|
||||||
use <../sum.scad>;
|
use <../sum.scad>;
|
||||||
|
|
||||||
function hashmap_len(map) = sum([
|
function hashmap_len(map) = sum([for(bucket = map) len(bucket)]);
|
||||||
for(bucket = map)
|
|
||||||
len(bucket)
|
|
||||||
]);
|
|
@@ -8,8 +8,4 @@
|
|||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
|
|
||||||
function hashset_elems(set) = [
|
function hashset_elems(set) = [for(bucket = set) each bucket];
|
||||||
for(bucket = set)
|
|
||||||
for(elem = bucket)
|
|
||||||
elem
|
|
||||||
];
|
|
@@ -10,7 +10,4 @@
|
|||||||
|
|
||||||
use <../sum.scad>;
|
use <../sum.scad>;
|
||||||
|
|
||||||
function hashset_len(set) = sum([
|
function hashset_len(set) = sum([for(bucket = set) len(bucket)]);
|
||||||
for(bucket = set)
|
|
||||||
len(bucket)
|
|
||||||
]);
|
|
Reference in New Issue
Block a user