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

assignvars