-USING: assocs.extras tools.test ;
+USING: assocs.extras kernel tools.test ;
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
: 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 ;