Did you know ... Search Documentation:
Pack ccprism -- prolog/ccprism/effects.pl
PublicShow source
 dist(+Dist:list(pair(prob,A)), -X:A) is nondet
 dist(+Ps:list(prob), +Xs:list(A), -X:A) is nondet
Probabilistic choice from given distribtion, which can be supplied as a list of pairs (dist/2) or two lists (dist/3).
 uniform(+Xs:list(A), -A) is nondet
Probabilistic choice from uniform distribution over list of values.
 sample(+P:pred(-A,+rndstate,-rndstate), -A) is det
Do arbitrary random sampling using capabilities of pack plrand. NB. only works during sampling execution, not explanation search.
 +SW:switch(A) := -X:A is nondet
Probabilistic choice from switch. A switch SW is a callable term of type:
switch(A) == pred(-switch(A), -X1:list(A), X2:list(A))

such that call(SW,ID,X1,X2) unifies ID with a canonical callable form of the switch and X1-X2 with a difference list of the switch's possible value.

 cctabled(:Head, +Work:callable) is nondet
Execute Work using tabled execution and storing the result under Head. See ccprism/macros.pl for an automatic program transformation to manage tabled predicates.
 ccstore(:Head, +Work:callable) is det
Stores a pre-computed 'pseudo-goal' in the tables, similar to Prolog's assert. The result of calling once(Work) is stored under the variant form Head. Thus, Work is expected to bind the variables in Head which represent the result of the tabled computation. Stored results should be retrieved using ccstored/1, not cctabled/2.
 ccstored(:Head) is det
Look up tabled fact previously stored using ccstore/2. Throws an exception if no such fact is found.

Undocumented predicates

The following predicates are exported, but not or incorrectly documented.

 dist(Arg1, Arg2, Arg3)
 factor(Arg1)