- 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)