1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-17 20:11:50 +02:00

use for directly

This commit is contained in:
Justin Lin
2021-04-23 21:38:33 +08:00
parent e2d9643e72
commit d18665329f

View File

@@ -14,15 +14,16 @@ use <../find_index.scad>;
function hashset_del(set, elem, eq = function(e1, e2) e1 == e2, hash = function(e) _str_hash(e)) =
let(
bidx = hash(elem) % len(set),
leng_set = len(set),
bidx = hash(elem) % leng_set,
bucket = set[bidx],
leng = len(bucket)
leng_bucket = len(bucket)
)
leng == 0 ? set :
leng_bucket == 0 ? set :
let(i = find_index(bucket, function(e) eq(e, elem)))
i == -1 ? set :
concat(
slice(set, 0, bidx),
[concat(slice(bucket, 0, i), slice(bucket, i + 1))],
slice(set, bidx + 1)
);
[
for(j = 0; j < leng_set; j = j + 1) j == bidx ?
[for(k = 0; k < leng_bucket; k = k + 1) if(k != i) bucket[k]] :
set[j]
];