| Did you know ... | Search Documentation: |
| Pack logtalk -- logtalk-3.98.0/docs/apis/_sources/optional_0.rst.txt |
.. index:: single: optional .. _optional/0:
.. rst-class:: right
object
optionalConstructors for optional terms. An optional term is either empty or holds a value. Optional terms should be regarded as opaque terms and always used with the optional/1 object by passing the optional term as a parameter.
| Availability:
| logtalk_load(optionals(loader))
| Author: Paulo Moura | Version: 2:2:0 | Date: 2026-02-21
| Compilation flags:
| static, context_switching_calls
| Provides: | :ref:`type::type/1 <type/0::type/1>` | :ref:`type::check/2 <type/0::check/2>`
| Remarks:
optional for use with the type library object.| Inherited public predicates: | (none)
.. contents:: :local: :backlinks: top
.. index:: empty/1 .. _optional/0::empty/1:
empty/1 ^^^^^^^^^^^
Constructs an empty optional term.
| Compilation flags:
| static
| Template:
| empty(Optional)
| Mode and number of proofs:
| empty(--nonvar) - one
.. index:: of/2 .. _optional/0::of/2:
of/2 ^^^^^^^^
Constructs an optional term holding the given value.
| Compilation flags:
| static
| Template:
| of(Value,Optional)
| Mode and number of proofs:
| of(@term,--nonvar) - one
.. index:: from_goal/3 .. _optional/0::from_goal/3:
from_goal/3 ^^^^^^^^^^^^^^^
Constructs an optional term holding a value bound by calling the given goal. Returns an empty optional term if the goal fails. Also returns an empty optional term if the goal throws an error, silently discarding the error information. Use from_goal_or_throw/3 if exceptions should be propagated or the expected library from_goal/3 predicate if error information should be preserved.
| Compilation flags:
| static
| Template:
| from_goal(Goal,Value,Optional)
| Meta-predicate template:
| from_goal(0,*,*)
| Mode and number of proofs:
| from_goal(+callable,--term,--nonvar) - one
.. index:: from_goal/2 .. _optional/0::from_goal/2:
from_goal/2 ^^^^^^^^^^^^^^^
Constructs an optional term holding a value bound by calling the given closure. Returns an empty optional term if the closure fails. Also returns an empty optional term if the closure throws an error, silently discarding the error information. Use from_goal_or_throw/2 if exceptions should be propagated or the expected library from_goal/2 predicate if error information should be preserved.
| Compilation flags:
| static
| Template:
| from_goal(Closure,Optional)
| Meta-predicate template:
| from_goal(1,*)
| Mode and number of proofs:
| from_goal(+callable,--nonvar) - one
.. index:: from_generator/3 .. _optional/0::from_generator/3:
from_generator/3 ^^^^^^^^^^^^^^^^^^^^
Constructs optional terms with the values generated by calling the given goal. On goal failure, returns an empty optional. On goal error, also returns an empty optional, silently discarding the error information.
| Compilation flags:
| static
| Template:
| from_generator(Goal,Value,Optional)
| Meta-predicate template:
| from_generator(0,*,*)
| Mode and number of proofs:
| from_generator(+callable,--term,--nonvar) - one_or_more
.. index:: from_generator/2 .. _optional/0::from_generator/2:
from_generator/2 ^^^^^^^^^^^^^^^^^^^^
Constructs optional terms with the values generated by calling the given closure. On closure failure, returns an empty optional. On closure error, also returns an empty optional, silently discarding the error information.
| Compilation flags:
| static
| Template:
| from_generator(Closure,Optional)
| Meta-predicate template:
| from_generator(1,*)
| Mode and number of proofs:
| from_generator(+from_generator,--nonvar) - one_or_more
.. index:: from_goal_or_throw/3 .. _optional/0::from_goal_or_throw/3:
from_goal_or_throw/3 ^^^^^^^^^^^^^^^^^^^^^^^^
Constructs an optional term holding a value bound by calling the given goal. Returns an empty optional term if the goal fails. Propagates any exception thrown by the goal.
| Compilation flags:
| static
| Template:
| from_goal_or_throw(Goal,Value,Optional)
| Meta-predicate template:
| from_goal_or_throw(0,*,*)
| Mode and number of proofs:
| from_goal_or_throw(+callable,--term,--nonvar) - one_or_error
.. index:: from_goal_or_throw/2 .. _optional/0::from_goal_or_throw/2:
from_goal_or_throw/2 ^^^^^^^^^^^^^^^^^^^^^^^^
Constructs an optional term holding a value bound by calling the given closure. Returns an empty optional term if the closure fails. Propagates any exception thrown by the closure.
| Compilation flags:
| static
| Template:
| from_goal_or_throw(Closure,Optional)
| Meta-predicate template:
| from_goal_or_throw(1,*)
| Mode and number of proofs:
| from_goal_or_throw(+callable,--nonvar) - one_or_error
(no local declarations; see entity ancestors if any)
(no local declarations; see entity ancestors if any)
(none)
.. seealso::
:ref:`optional(Optional) <optional/1>`, :ref:`type <type/0>`