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
|
||||
|
||||
ERROR: not-a-sequence object ;
|
||||
|
||||
TUPLE: sequence-wrapper < wrapped-key ;
|
||||
|
||||
C: <sequence-wrapper> sequence-wrapper
|
||||
|
@ -23,7 +25,8 @@ TUPLE: sequence-hash-set < wrapped-hash-set ;
|
|||
: <sequence-hash-set> ( n -- shash-set )
|
||||
<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
|
||||
underlying>> clone sequence-hash-set boa ; inline
|
||||
|
|
|
@ -6,6 +6,8 @@ hashtables.wrapped kernel parser sequences vocabs.loader ;
|
|||
|
||||
IN: hashtables.sequences
|
||||
|
||||
ERROR: not-a-sequence object ;
|
||||
|
||||
TUPLE: sequence-wrapper < wrapped-key ;
|
||||
|
||||
C: <sequence-wrapper> sequence-wrapper
|
||||
|
@ -23,7 +25,8 @@ TUPLE: sequence-hashtable < wrapped-hashtable ;
|
|||
: <sequence-hashtable> ( n -- shashtable )
|
||||
<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
|
||||
underlying>> clone sequence-hashtable boa ; inline
|
||||
|
|
|
@ -6,6 +6,8 @@ math.hashcodes parser sequences vocabs.loader ;
|
|||
|
||||
IN: hash-sets.numbers
|
||||
|
||||
ERROR: not-a-number object ;
|
||||
|
||||
TUPLE: number-wrapper < wrapped-key ;
|
||||
|
||||
C: <number-wrapper> number-wrapper
|
||||
|
@ -23,7 +25,8 @@ TUPLE: number-hash-set < wrapped-hash-set ;
|
|||
: <number-hash-set> ( n -- shash-set )
|
||||
<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
|
||||
underlying>> clone number-hash-set boa ; inline
|
||||
|
|
|
@ -7,6 +7,8 @@ vocabs.loader ;
|
|||
|
||||
IN: hashtables.numbers
|
||||
|
||||
ERROR: not-a-number object ;
|
||||
|
||||
TUPLE: number-wrapper < wrapped-key ;
|
||||
|
||||
C: <number-wrapper> number-wrapper
|
||||
|
@ -24,7 +26,8 @@ TUPLE: number-hashtable < wrapped-hashtable ;
|
|||
: <number-hashtable> ( n -- shashtable )
|
||||
<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
|
||||
underlying>> clone number-hashtable boa ; inline
|
||||
|
|
Loading…
Reference in New Issue