.. index:: single: streamvars .. _streamvars/0: .. rst-class:: right **object** ``streamvars`` ============== Stream variables (supporting logical, backtracable, adding and retrieving of terms). | **Availability:** | ``logtalk_load(library(loader))`` | **Author:** Nobukuni Kino and Paulo Moura | **Version:** 1:3:0 | **Date:** 2019-06-15 | **Compilation flags:** | ``static, context_switching_calls`` | **Dependencies:** | (none) | **Remarks:** | (none) | **Inherited public predicates:** | (none) .. contents:: :local: :backlinks: top Public predicates ----------------- .. index:: new/1 .. _streamvars/0::new/1: ``new/1`` ^^^^^^^^^ Makes ``Variable`` a stream variable. Initial state will be empty. | **Compilation flags:** | ``static`` | **Template:** | ``new(Variable)`` | **Mode and number of proofs:** | ``new(--streamvar)`` - ``one`` | **Exceptions:** | Variable is not a variable: | ``type_error(variable,Variable)`` ------------ .. index:: new/2 .. _streamvars/0::new/2: ``new/2`` ^^^^^^^^^ Makes ``Variable`` a stream variable and sets its initial state to ``Value``. | **Compilation flags:** | ``static`` | **Template:** | ``new(Variable,Value)`` | **Mode and number of proofs:** | ``new(--streamvar,@nonvar)`` - ``one`` | **Exceptions:** | Variable is not a variable: | ``type_error(variable,Variable)`` ------------ .. index:: (<=)/2 .. _streamvars/0::(<=)/2: ``(<=)/2`` ^^^^^^^^^^ Sets the state of the stream variable ``Variable`` to ``Value`` (initializing the variable if needed). | **Compilation flags:** | ``static`` | **Template:** | ``Variable<=Value`` | **Mode and number of proofs:** | ``(?streamvar)<=(@nonvar)`` - ``one`` ------------ .. index:: (=>)/2 .. _streamvars/0::(=>)/2: ``(=>)/2`` ^^^^^^^^^^ Unifies ``Value`` with the current state of the stream variable ``Variable``. | **Compilation flags:** | ``static`` | **Template:** | ``Variable=>Value`` | **Mode and number of proofs:** | ``+streamvar=> ?nonvar`` - ``zero_or_one`` ------------ Protected predicates -------------------- (none) Private predicates ------------------ (none) Operators --------- ``op(100,xfx,<=)`` ^^^^^^^^^^^^^^^^^^ | **Scope:** | ``public`` ``op(100,xfx,=>)`` ^^^^^^^^^^^^^^^^^^ | **Scope:** | ``public``