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)

## Public predicates

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

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

### `(<=)/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`

### `(=>)/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`