mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-11 17:24:20 +02:00
re-order
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
use <../../util/slice.scad>;
|
||||
use <../../util/some.scad>;
|
||||
|
||||
function _hashset_add(set, elem, hash, eq) =
|
||||
function _hashset_add(set, elem, eq, hash) =
|
||||
let(
|
||||
idx = hash(elem) % len(set),
|
||||
bucket = set[idx]
|
||||
@@ -14,9 +14,9 @@ function _hashset_add(set, elem, hash, eq) =
|
||||
slice(set, idx + 1)
|
||||
);
|
||||
|
||||
function _hashset(elems, leng, buckets, hash, eq, i = 0) =
|
||||
function _hashset(elems, leng, buckets, eq, hash, i = 0) =
|
||||
i == leng ? buckets :
|
||||
_hashset(elems, leng, _hashset_add(buckets, elems[i], hash, eq), hash, eq, i + 1);
|
||||
_hashset(elems, leng, _hashset_add(buckets, elems[i], eq, hash), eq, hash, i + 1);
|
||||
|
||||
function _find(lt, elem, eq, leng, i = 0) =
|
||||
i == leng ? -1 :
|
||||
|
@@ -22,22 +22,22 @@ echo(hashset_list(hashset_del(s2, 2)));
|
||||
df_hash = function(e) _str_hash(e);
|
||||
df_eq = function(e1, e2) e1 == e2;
|
||||
|
||||
function hashset(lt, hash = df_hash, eq = df_eq, bucket_size = 16) =
|
||||
function hashset(lt, eq = df_eq, hash = df_hash, bucket_size = 16) =
|
||||
let(
|
||||
lt_undef = is_undef(lt),
|
||||
size = lt_undef ? bucket_size : len(lt),
|
||||
buckets = [for(i = [0:bucket_size - 1]) []]
|
||||
)
|
||||
lt_undef ? buckets :
|
||||
_hashset(lt, len(lt), buckets, hash, eq);
|
||||
_hashset(lt, len(lt), buckets, eq, hash);
|
||||
|
||||
function hashset_has(set, elem, hash = df_hash, eq = df_eq) =
|
||||
function hashset_has(set, elem, eq = df_eq, hash = df_hash) =
|
||||
some(set[hash(elem) % len(set)], function(e) eq(e, elem));
|
||||
|
||||
function hashset_add(set, elem, hash = df_hash, eq = df_eq) =
|
||||
_hashset_add(set, elem, hash, eq);
|
||||
function hashset_add(set, elem, eq = df_eq, hash = df_hash) =
|
||||
_hashset_add(set, elem, eq, hash);
|
||||
|
||||
function hashset_del(set, elem, hash = df_hash, eq = df_eq) =
|
||||
function hashset_del(set, elem, eq = df_eq, hash = df_hash) =
|
||||
let(
|
||||
bidx = hash(elem) % len(set),
|
||||
bucket = set[bidx],
|
||||
|
Reference in New Issue
Block a user