>
> Note: I am still not entirely clear why 'enum? can return unexpected (at
> least to me) results in the sparse array case (see below)
> Is it because 'enum precreates key nodes in the tree for a sparse array in
> order to keep it balanced?.
>
>
Ok. I think I get the structure.
(val (enum? *HT Val) is the test I need to use and is very fast!
My apologies for the email noise as I worked through this.
/Lindsay
(de TestEnum (N)
(off *HT)
(for I N
(let (Val (Hasher I))
(if (val (enum? *HT Val))
(prinl
"! Duplicate: "
I
"; "
Val
"; "
(sym (enum? '*HT Val))
"; "
(sym (val (enum '*HT Val))) )
(set (enum '*HT Val) I) ) ) ) )
: (TestEnum (** 2 16))
-> 65536
: (TestEnum (** 2 18))
-> 262144
: (TestEnum (** 2 20))
-> 1048576