hashtables: cleanup duplicate code.
parent
a58c8ecc03
commit
e3ea3ac140
|
|
@ -155,22 +155,18 @@ M: hashtable set-at
|
||||||
[ [ 1 fixnum+fast { array-capacity } declare ] dip length<< ]
|
[ [ 1 fixnum+fast { array-capacity } declare ] dip length<< ]
|
||||||
2bi ; inline
|
2bi ; inline
|
||||||
|
|
||||||
|
: collect-pairs ( hash quot: ( key value -- elt ) -- seq )
|
||||||
|
[ [ array>> ] [ assoc-size <vector> ] bi ] dip swap [
|
||||||
|
[ push-unsafe ] curry compose each-pair
|
||||||
|
] keep { } like ; inline
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
M: hashtable >alist
|
M: hashtable >alist [ 2array ] collect-pairs ;
|
||||||
[ array>> ] [ assoc-size <vector> ] bi [
|
|
||||||
[ [ 2array ] dip push-unsafe ] curry each-pair
|
|
||||||
] keep { } like ;
|
|
||||||
|
|
||||||
M: hashtable keys
|
M: hashtable keys [ drop ] collect-pairs ;
|
||||||
[ array>> ] [ assoc-size <vector> ] bi [
|
|
||||||
[ nip push-unsafe ] curry each-pair
|
|
||||||
] keep { } like ;
|
|
||||||
|
|
||||||
M: hashtable values
|
M: hashtable values [ nip ] collect-pairs ;
|
||||||
[ array>> ] [ assoc-size <vector> ] bi [
|
|
||||||
[ [ drop ] 2dip push-unsafe ] curry each-pair
|
|
||||||
] keep { } like ;
|
|
||||||
|
|
||||||
M: hashtable clone
|
M: hashtable clone
|
||||||
(clone) [ clone ] change-array ; inline
|
(clone) [ clone ] change-array ; inline
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue