assocs.extras: adding delete-value-at.

db4
John Benediktsson 2014-10-23 15:08:38 -07:00
parent bc26dbb3ee
commit dce2e90839
2 changed files with 9 additions and 1 deletions

View File

@ -1,5 +1,5 @@
USING: assocs.extras tools.test ;
USING: assocs.extras kernel tools.test ;
IN: assocs.extras
@ -22,3 +22,6 @@ IN: assocs.extras
{ H{ { "a" 2 } { "b" 3 } } H{ { "a" 5 } { "c" 10 } } }
assoc-merge
] unit-test
{ H{ } } [ H{ { 1 2 } } 2 over delete-value-at ] unit-test
{ H{ { 1 2 } } } [ H{ { 1 2 } } 3 over delete-value-at ] unit-test

View File

@ -52,3 +52,8 @@ IN: assocs.extras
: assoc-merge ( seq -- merge )
H{ } clone [ (assoc-merge) ] reduce ;
GENERIC: delete-value-at ( value assoc -- )
M: assoc delete-value-at
[ value-at* ] keep swap [ delete-at ] [ 2drop ] if ;