delete-at ( key assoc -- )
Factor documentation > Factor handbook > The language > Collections > Associative mapping operations > Associative mapping protocol
Prev:set-at ( value key assoc -- )
Next:clear-assoc ( assoc -- )


Vocabulary
assocs

Inputs and outputs
keya key
assocan assoc


Generic word contract
Removes an entry from the assoc.

Side effects
Modifies assoc

Definition
IN: assocs

GENERIC: delete-at ( key assoc -- )


Methods
USING: accessors assocs kernel sequences xml.data ;

M: attrs delete-at
[ nip ] [ attr@ drop ] 2bi
[ swap alist>> remove-nth! drop ] [ drop ] if* ;


USING: accessors assocs kernel trees.avl trees.avl.private ;

M: avl delete-at [ avl-delete 2drop ] change-root drop ;


USING: assocs biassocs ;

M: biassoc delete-at no-biassoc-deletion ;


USING: accessors assocs kernel sequences ;

M: enum delete-at seq>> remove-nth! drop ; inline


USING: assocs env environment kernel ;

M: env delete-at drop unset-os-env ;


USING: assocs hashtables hashtables.private kernel ;

M: hashtable delete-at
[ nip ] [ key@ ] 2bi
[ [ ((tombstone)) dup ] 2dip set-nth-pair hash-deleted+ ]
[ 3drop ] if ;


USING: assocs hashtables.identity hashtables.identity.private ;

M: identity-hashtable delete-at identity@ delete-at ; inline


USING: accessors assocs deques kernel linked-assocs ;

M: linked-assoc delete-at
[
[ assoc>> ] [ dlist>> ] bi [ at ] dip
[ delete-node ] curry when*
] [ assoc>> delete-at ] 2bi ;


USING: assocs kernel mirrors ;

M: mirror delete-at [ f ] 2dip set-at ;


USING: assocs kernel sequences sequences.n-based
sequences.n-based.private ;

M: n-based-assoc delete-at [ f ] 2dip n-based@ set-nth ;


USING: assocs kernel pairs ;

M: pair delete-at
[ cannot-delete-key ] [ [ delete-at ] [ 2drop ] if-hash ]
if-key ; inline


USING: assocs quadtrees quadtrees.private ;

M: quadtree delete-at erase ;


USING: assocs kernel redis ;

M: redis delete-at [ redis-del drop ] with-redis ;


USING: assocs assocs.private kernel sequences ;

M: sequence delete-at
[ nip ] [ search-alist nip ] 2bi
[ swap remove-nth! drop ] [ drop ] if* ;


USING: accessors assocs kernel trees.splay trees.splay.private
;

M: splay delete-at dup root>> [ remove-splay ] [ 2drop ] if ;


USING: accessors arrays assocs classes.struct.prettyprint
combinators kernel sequences ;

M: struct-mirror delete-at
object>> {
{ [ over "underlying" = ] [ 2drop ] }
{ [ over array? ] [ swap first reset-struct-slot ] }
[ 2drop ]
} cond ;


USING: accessors assocs kernel sequences serialize
tokyo.abstractdb tokyo.alien.tcadb ;

M: tokyo-abstractdb delete-at
handle>> swap object>bytes dup length tcadbout drop ;


USING: accessors assocs kernel sequences serialize
tokyo.alien.tcrdb tokyo.remotedb ;

M: tokyo-remotedb delete-at
handle>> swap object>bytes dup length tcrdbout drop ;


USING: accessors assocs kernel trees trees.private ;

M: tree delete-at [ delete-bst-node ] change-root drop ;