object

# `mutations_store`

Stores mutation definitions for selected types. User extensible by defining objects or categories defining clauses for the `mutation/3` predicate and using this object as a hook object for their compilation.

Availability:
`logtalk_load(mutations(loader))`
Author: Paulo Moura
Version: 0:1:0
Date: 2023-11-23
Compilation flags:
`static, context_switching_calls`
Implements:
`public` expanding
Uses:
fast_random
Remarks:
(none)
Inherited public predicates:
goal_expansion/2 term_expansion/2

## Public predicates

### `mutation/3`

Returns a random mutation of a term into another term of the same type. The input `Term` is assumed to be valid for the given `Type`.

Compilation flags:
`static`
Template:
`mutation(Type,Term,Mutation)`
Mode and number of proofs:
`mutation(@callable,@term,-term)` - `one`

### `counter/2`

Table of the number of mutations available per type.

Compilation flags:
`static`
Template:
`counter(Type,N)`
Mode and number of proofs:
`counter(?callable,?positive_integer)` - `zero_or_more`

## Protected predicates

(no local declarations; see entity ancestors if any)

## Private predicates

### `mutation/4`

Returns a random mutation of a term into another term of the same type using mutator `N`. The input `Term` is assume to be valid for the given `Type`.

Compilation flags:
`static, multifile`
Template:
`mutation(Type,N,Term,Mutation)`
Mode and number of proofs:
`mutation(?callable,?positive_integer,@term,-term)` - `zero_or_more`

### `counter_/2`

Internal counter for the number of mutations available for a given type.

Compilation flags:
`dynamic`
Template:
`counter_(Type,N)`
Mode and number of proofs:
`counter_(?callable,?positive_integer)` - `zero_or_more`

## Operators

(none)

See also

type