hashtables/hash-sets: add some error checking...
...to the sequence/number wrapped versions.modern-harvey2
parent
46d4b33349
commit
1eff2b3dbc
|
@ -6,6 +6,8 @@ parser sequences sets vocabs.loader ;
|
||||||
|
|
||||||
IN: hash-sets.sequences
|
IN: hash-sets.sequences
|
||||||
|
|
||||||
|
ERROR: not-a-sequence object ;
|
||||||
|
|
||||||
TUPLE: sequence-wrapper < wrapped-key ;
|
TUPLE: sequence-wrapper < wrapped-key ;
|
||||||
|
|
||||||
C: <sequence-wrapper> sequence-wrapper
|
C: <sequence-wrapper> sequence-wrapper
|
||||||
|
@ -23,7 +25,8 @@ TUPLE: sequence-hash-set < wrapped-hash-set ;
|
||||||
: <sequence-hash-set> ( n -- shash-set )
|
: <sequence-hash-set> ( n -- shash-set )
|
||||||
<hash-set> sequence-hash-set boa ; inline
|
<hash-set> sequence-hash-set boa ; inline
|
||||||
|
|
||||||
M: sequence-hash-set wrap-key drop <sequence-wrapper> ;
|
M: sequence-hash-set wrap-key
|
||||||
|
drop dup sequence? [ <sequence-wrapper> ] [ not-a-sequence ] if ;
|
||||||
|
|
||||||
M: sequence-hash-set clone
|
M: sequence-hash-set clone
|
||||||
underlying>> clone sequence-hash-set boa ; inline
|
underlying>> clone sequence-hash-set boa ; inline
|
||||||
|
|
|
@ -6,6 +6,8 @@ hashtables.wrapped kernel parser sequences vocabs.loader ;
|
||||||
|
|
||||||
IN: hashtables.sequences
|
IN: hashtables.sequences
|
||||||
|
|
||||||
|
ERROR: not-a-sequence object ;
|
||||||
|
|
||||||
TUPLE: sequence-wrapper < wrapped-key ;
|
TUPLE: sequence-wrapper < wrapped-key ;
|
||||||
|
|
||||||
C: <sequence-wrapper> sequence-wrapper
|
C: <sequence-wrapper> sequence-wrapper
|
||||||
|
@ -23,7 +25,8 @@ TUPLE: sequence-hashtable < wrapped-hashtable ;
|
||||||
: <sequence-hashtable> ( n -- shashtable )
|
: <sequence-hashtable> ( n -- shashtable )
|
||||||
<hashtable> sequence-hashtable boa ; inline
|
<hashtable> sequence-hashtable boa ; inline
|
||||||
|
|
||||||
M: sequence-hashtable wrap-key drop <sequence-wrapper> ;
|
M: sequence-hashtable wrap-key
|
||||||
|
drop dup sequence? [ <sequence-wrapper> ] [ not-a-sequence ] if ;
|
||||||
|
|
||||||
M: sequence-hashtable clone
|
M: sequence-hashtable clone
|
||||||
underlying>> clone sequence-hashtable boa ; inline
|
underlying>> clone sequence-hashtable boa ; inline
|
||||||
|
|
|
@ -6,6 +6,8 @@ math.hashcodes parser sequences vocabs.loader ;
|
||||||
|
|
||||||
IN: hash-sets.numbers
|
IN: hash-sets.numbers
|
||||||
|
|
||||||
|
ERROR: not-a-number object ;
|
||||||
|
|
||||||
TUPLE: number-wrapper < wrapped-key ;
|
TUPLE: number-wrapper < wrapped-key ;
|
||||||
|
|
||||||
C: <number-wrapper> number-wrapper
|
C: <number-wrapper> number-wrapper
|
||||||
|
@ -23,7 +25,8 @@ TUPLE: number-hash-set < wrapped-hash-set ;
|
||||||
: <number-hash-set> ( n -- shash-set )
|
: <number-hash-set> ( n -- shash-set )
|
||||||
<hash-set> number-hash-set boa ; inline
|
<hash-set> number-hash-set boa ; inline
|
||||||
|
|
||||||
M: number-hash-set wrap-key drop <number-wrapper> ;
|
M: number-hash-set wrap-key
|
||||||
|
drop dup number? [ <number-wrapper> ] [ not-a-number ] if ;
|
||||||
|
|
||||||
M: number-hash-set clone
|
M: number-hash-set clone
|
||||||
underlying>> clone number-hash-set boa ; inline
|
underlying>> clone number-hash-set boa ; inline
|
||||||
|
|
|
@ -7,6 +7,8 @@ vocabs.loader ;
|
||||||
|
|
||||||
IN: hashtables.numbers
|
IN: hashtables.numbers
|
||||||
|
|
||||||
|
ERROR: not-a-number object ;
|
||||||
|
|
||||||
TUPLE: number-wrapper < wrapped-key ;
|
TUPLE: number-wrapper < wrapped-key ;
|
||||||
|
|
||||||
C: <number-wrapper> number-wrapper
|
C: <number-wrapper> number-wrapper
|
||||||
|
@ -24,7 +26,8 @@ TUPLE: number-hashtable < wrapped-hashtable ;
|
||||||
: <number-hashtable> ( n -- shashtable )
|
: <number-hashtable> ( n -- shashtable )
|
||||||
<hashtable> number-hashtable boa ; inline
|
<hashtable> number-hashtable boa ; inline
|
||||||
|
|
||||||
M: number-hashtable wrap-key drop <number-wrapper> ;
|
M: number-hashtable wrap-key
|
||||||
|
drop dup number? [ <number-wrapper> ] [ not-a-number ] if ;
|
||||||
|
|
||||||
M: number-hashtable clone
|
M: number-hashtable clone
|
||||||
underlying>> clone number-hashtable boa ; inline
|
underlying>> clone number-hashtable boa ; inline
|
||||||
|
|
Loading…
Reference in New Issue