: add-loc ( loc document -- ) locs>> push ;
-: remove-loc ( loc document -- ) locs>> delete ;
+: remove-loc ( loc document -- ) locs>> remove! drop ;
: update-locs ( loc document -- )
locs>> [ set-model ] with each ;
[ cookies>> ] dip '[ [ _ ] dip name>> = ] find nip ;
: delete-cookie ( request/response name -- )
- over cookies>> [ get-cookie ] dip delete ;
+ over cookies>> [ get-cookie ] dip remove! drop ;
: put-cookie ( request/response cookie -- request/response )
[ name>> dupd get-cookie [ dupd delete-cookie ] when* ] keep
dependencies>> push ;
: remove-dependency ( dep model -- )
- dependencies>> delete ;
+ dependencies>> remove! drop ;
DEFER: add-connection
connections>> push ;
: remove-connection ( observer model -- )
- [ connections>> delete ] keep
+ [ connections>> remove! drop ] keep
dup connections>> empty? [ dup deactivate-model ] when
drop ;
" {"
" { [ dup continuation? ] [ append ] }"
" { [ dup not ] [ drop reverse ] }"
- " { [ dup pair? ] [ [ delete ] keep ] }"
+ " { [ dup pair? ] [ [ remove! drop ] keep ] }"
" } cond ;"
} ;
: handle-wm-ncbutton ( hWnd uMsg wParam lParam -- )
2drop nip
message>button nc-buttons get
- swap [ push ] [ delete ] if ;
+ swap [ push ] [ remove! drop ] if ;
: mouse-wheel ( wParam -- array ) >lo-hi [ sgn neg ] map ;
: handle-wm-buttondown ( hWnd uMsg wParam lParam -- )
[
over set-capture
- dup message>button drop nc-buttons get delete
+ dup message>button drop nc-buttons get remove! drop
] 2dip prepare-mouse send-button-down ;
: handle-wm-buttonup ( hWnd uMsg wParam lParam -- )
mouse-captured get [ release-capture ] when
pick message>button drop dup nc-buttons get member? [
- nc-buttons get delete 4drop
+ nc-buttons get remove! drop 4drop
] [
drop prepare-mouse send-button-up
] if ;
[ remove-gadget ] [
over (unparent)
[ unfocus-gadget ]
- [ children>> delete ]
+ [ children>> remove! drop ]
[ nip relayout ]
2tri
] 2bi
: send-button-up ( gesture loc world -- )
move-hand
- dup #>> hand-buttons get-global delete
+ dup #>> hand-buttons get-global remove! drop
stop-drag-timer
button-gesture ;
M: com-wrapper dispose*
[ [ free ] each f ] change-vtbls
- +live-wrappers+ get-global delete ;
+ +live-wrappers+ get-global remove! drop ;
: com-wrap ( object wrapper -- wrapped-object )
[ vtbls>> ] [ (malloc-wrapped-object) ] bi
{ $description "Sets the element with index " { $snippet "m" } " to the element with index " { $snippet "n" } "." }
{ $side-effects "seq" } ;
-HELP: delete
-{ $values { "elt" object } { "seq" "a resizable mutable sequence" } }
-{ $description "Removes all elements equal to " { $snippet "elt" } " from " { $snippet "seq" } "." }
+HELP: remove!
+{ $values { "elt" object } { "seq" "a resizable mutable sequence" } { "elt" object } }
+{ $description "Removes all elements equal to " { $snippet "elt" } " from " { $snippet "seq" } " and returns " { $snippet "seq" } "." }
{ $notes "This word uses equality comparison (" { $link = } ")." }
{ $side-effects "seq" } ;
{ $values { "seq" sequence } { "end" sequence } { "?" "a boolean" } }
{ $description "Tests if " { $snippet "seq" } " ends with " { $snippet "end" } ". If " { $snippet "end" } " is longer than " { $snippet "seq" } ", this word outputs " { $link f } "." } ;
-{ remove remove-nth remq delq delete delete-nth } related-words
+{ remove remove-nth remq delq remove! delete-nth } related-words
HELP: cut-slice
{ $values { "seq" sequence } { "n" "a non-negative integer" } { "before-slice" sequence } { "after-slice" "a slice" } }
{ $subsections map! change-nth }
"Deleting elements:"
{ $subsections
- delete
+ remove!
delq
delete-nth
delete-slice
{ { $link suffix } { $link push } }
{ { $link but-last } { $link pop* } }
{ { $link unclip-last } { $link pop } }
- { { $link remove } { $link delete } }
+ { { $link remove } { $link remove! } }
{ { $link remq } { $link delq } }
{ { $link remove-nth } { $link delete-nth } }
{ { $link reverse } { $link reverse-here } }
[ 4 [ CHAR: a <string> ] map ]
unit-test
-[ V{ } ] [ "f" V{ } clone [ delete ] keep ] unit-test
-[ V{ } ] [ "f" V{ "f" } clone [ delete ] keep ] unit-test
-[ V{ } ] [ "f" V{ "f" "f" } clone [ delete ] keep ] unit-test
-[ V{ "x" } ] [ "f" V{ "f" "x" "f" } clone [ delete ] keep ] unit-test
-[ V{ "y" "x" } ] [ "f" V{ "y" "f" "x" "f" } clone [ delete ] keep ] unit-test
+[ V{ } ] [ "f" V{ } clone remove! ] unit-test
+[ V{ } ] [ "f" V{ "f" } clone remove! ] unit-test
+[ V{ } ] [ "f" V{ "f" "f" } clone remove! ] unit-test
+[ V{ "x" } ] [ "f" V{ "f" "x" "f" } clone remove! ] unit-test
+[ V{ "y" "x" } ] [ "f" V{ "y" "f" "x" "f" } clone remove! ] unit-test
[ V{ 0 1 4 5 } ] [ 6 >vector 2 4 pick delete-slice ] unit-test
: filter-here ( seq quot -- )
swap [ 0 0 ] dip (filter-here) ; inline
-: delete ( elt seq -- )
- [ = not ] with filter-here ;
+: remove! ( elt seq -- seq )
+ [ [ = not ] with filter-here ] keep ;
: delq ( elt seq -- )
[ eq? not ] with filter-here ;
USING: assocs hashtables kernel sequences vectors ;
IN: sets
-: adjoin ( elt seq -- ) [ delete ] [ push ] 2bi ;
+: adjoin ( elt seq -- ) [ remove! drop ] [ push ] 2bi ;
: conjoin ( elt assoc -- ) dupd set-at ;
: use-words ( assoc -- ) (use-words) push ;
-: unuse-words ( assoc -- ) (use-words) delete ;
+: unuse-words ( assoc -- ) (use-words) remove! drop ;
TUPLE: ambiguous-use-error words ;
: @edges ( from to digraph -- to edges ) swapd at edges>> ;
: add-edge ( from to digraph -- ) @edges push ;
-: delete-edge ( from to digraph -- ) @edges delete ;
+: delete-edge ( from to digraph -- ) @edges remove! drop ;
: delete-to-edges ( to digraph -- )
- [ nip dupd edges>> delete ] assoc-each drop ;
+ [ nip dupd edges>> remove! drop ] assoc-each drop ;
: delete-vertex ( key digraph -- )
2dup delete-at delete-to-edges ;