Another utility
parent
efb6c73f28
commit
569657a2df
|
@ -3,10 +3,16 @@
|
||||||
USING: kernel assocs ;
|
USING: kernel assocs ;
|
||||||
IN: persistent.assocs
|
IN: persistent.assocs
|
||||||
|
|
||||||
GENERIC: new-at ( value key phash -- phash' )
|
GENERIC: new-at ( value key assoc -- assoc' )
|
||||||
|
|
||||||
M: assoc new-at clone [ set-at ] keep ;
|
M: assoc new-at clone [ set-at ] keep ;
|
||||||
|
|
||||||
GENERIC: pluck-at ( key phash -- phash' )
|
GENERIC: pluck-at ( key assoc -- assoc' )
|
||||||
|
|
||||||
M: assoc pluck-at clone [ delete-at ] keep ;
|
M: assoc pluck-at clone [ delete-at ] keep ;
|
||||||
|
|
||||||
|
: changed-at ( key assoc quot -- assoc' )
|
||||||
|
[ [ at ] dip call ] [ drop new-at ] 3bi ; inline
|
||||||
|
|
||||||
|
: conjoined ( key assoc -- assoc' )
|
||||||
|
dupd new-at ;
|
||||||
|
|
Loading…
Reference in New Issue