protocol
assignvarsp
Assignable variables (supporting backtracable assignment of non-variable terms) protocol.
Availability:
logtalk_load(assignvars(loader))
Author: Nobukuni Kino and Paulo Moura
Version: 1:0:1
Date: 2019-06-10
Compilation flags:
static
Dependencies:
(none)
Remarks:
(none)
Inherited public predicates:
(none)
Public predicates
assignable/1
Makes Variable
an assignable variable. Initial state will be empty.
Compilation flags:
static
Template:
assignable(Variable)
Mode and number of proofs:
assignable(--assignvar)
- one
Exceptions:
Variable is not a variable:
type_error(variable,Variable)
assignable/2
Makes Variable
an assignable variable and sets its initial state to Value
.
Compilation flags:
static
Template:
assignable(Variable,Value)
Mode and number of proofs:
assignable(--assignvar,@nonvar)
- one
Exceptions:
Variable is not a variable:
type_error(variable,Variable)
Value is not instantiated:
instantiation_error
(<=)/2
Sets the state of the assignable variable Variable
to Value
(initializing the variable if needed).
Compilation flags:
static
Template:
Variable<=Value
Mode and number of proofs:
(?assignvar)<=(@nonvar)
- one
Exceptions:
Value is not instantiated:
instantiation_error
(=>)/2
Unifies Value
with the current state of the assignable variable Variable
.
Compilation flags:
static
Template:
Variable=>Value
Mode and number of proofs:
+assignvar=> ?nonvar
- zero_or_one
Exceptions:
Variable is not instantiated:
instantiation_error
Protected predicates
(none)
Private predicates
(none)
Operators
op(100,xfx,<=)
Scope:
public
op(100,xfx,=>)
Scope:
public
See also