
store_inc(+StoreHandle, ++Key)

   Increment an integral entry within a store object

Arguments
   StoreHandle         A store handle or store name
   Key                 A ground term

Type
   Non-logical Variables, Arrays, Bags, Shelves and Stores

Description
	This looks up an entry under a given key in a given store object, and
	if such an entry exists, and is of integer type, it is incremented by
	one.  If no entry exists, an entry with integer value 1 is created.

	This predicate is a shorthand for:

	store_inc(Handle, Key) :-
	    ( store_get(Handle, Key, C0) ->
		C1 is C0 + 1,
		store_set(Handle, Key, C1)
	    ;
		store_set(Handle, Key, 1)
	    ).

	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_inc(+, ++) is det

Modules
   This predicate is sensitive to its module context (tool predicate, see @/2).

Exceptions
     4 --- StoreHandle is uninstantiated
     4 --- Key is not a ground term
     5 --- StoreHandle is neither atom nor compound term nor store handle
    45 --- StoreHandle is not the name of a store

Examples
   
    ?- store_create(Handle),
       store_set(Handle, count, 7),
       store_inc(Handle, count),
       store_get(Handle, count, N).
    Handle = 'STORE'(16'00334e20)
    N1 = 8
    Yes (0.00s cpu)

    ?- store_create(Handle),
       store_inc(Handle, foo),
       store_get(Handle, foo, N).
    Handle = 'STORE'(16'00334e20)
    N = 1
    Yes (0.00s cpu)
    

See Also
   store / 1, local / 1, store_set / 3, store_get / 3, store_delete / 2, store_contains / 2, stored_keys / 2, stored_keys_and_values / 2, store_create / 1, store_count / 2
