[ Non-logical Variables, Arrays, Bags, Shelves and Stores | Reference Manual | Alphabetic Index ]
store_delete(+StoreHandle, ++Key)
Delete an entry in a store object
- StoreHandle
- A store handle or store name
- Key
- A ground term
Description
This deletes any entry for a given key in a given store object.
If the store does not contain such an entry, the predicate
silently succeeds anyway.
The key can be arbitrarily complex, but must be a ground term.
The complexity of this operation is linear in the size
of the key, since the key needs to be compared. For indexing purposes,
a hash value is computed from the key, and the full depth of the key
is taken into account.
Note: If StoreHandle is not a handle, then it must be an atom or a
compound term, and the store is identified by this term's toplevel
functor together with the context module.
Modes and Determinism
- store_delete(+, ++) is det
Modules
This predicate is sensitive to its module context (tool predicate, see @/2).
Exceptions
- (4) instantiation fault
- StoreHandle is uninstantiated
- (4) instantiation fault
- Key is not ground
- (5) type error
- StoreHandle is neither atom nor compound term nor store handle
- (45) named object does not exist
- StoreHandle is not the name of a store
Examples
?- store_create(Handle),
store_set(Handle, tom, 12345),
stored_keys_and_values(Handle, Before),
store_delete(Handle, tom),
stored_keys_and_values(Handle, After).
Handle = $&(store,"17h3")
Before = [tom - 12345]
After = []
Yes (0.00s cpu)
?- store_create(Handle),
store_set(Handle, tom, 12345),
store_delete(Handle, tom),
store_delete(Handle, tom).
Yes (0.00s cpu)
See Also
store / 1, store_create / 1, store_erase / 1, store_remove / 3, store_set / 3, stored_keys_and_values / 2