Did you know ... Search Documentation:
Pack canny_tudor -- prolog/canny/payloads.pl
PublicShow source

Apply and Property terms must be non-variable. The list below indicates the valid forms of Apply, indicating determinism. Note that only peek and pop perform non-deterministically for all thread-local payloads.

  • reset is det
  • push is semi-det
  • peek(Payload) is non-det
  • pop(Payload) is non-det
  • [Apply0|Applies] is semi-det
  • Apply is semi-det for payload

Properties as follows.

  • top(Property) is semi-det for payload
  • Property is semi-det for payload

The first form top/1 peeks at the latest payload once. It behaves semi-deterministically for the top-most payload.

 payload(:PI) is det
Makes public multi-file apply-to and property-of predicates using the predicate indicator PI of the form M:Payload/{ToArity, OfArity} where arity specifications define the arity or arities for a payload. Defines predicates M:apply_to_Payload/ToArity and M:property_of_Payload/OfArity for module M. Allows comma-separated lists of arities.
 apply_to(+Apply, :To) is nondet
apply_to(+Applies, :To) is semidet
Arguments:
Applies- is a list of Apply terms. It succeeds when all its Apply terms succeed, and fails when the first one fails, possibly leaving side effects if the apply-to predicate generates addition effects; though typically not for mutation arity-3 apply-to predicates.
 property_of(+Property, :Of) is nondet
Finds Property of some payload where the second argument M:Of defines the module M and payload atom Of.

Property top/1 peeks semi-deterministically at the top-most payload for some given property.

Undocumented predicates

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

 apply_to(Arg1)
 property_of(Arg1)