.. index:: single: hook_set(Set)
.. _hook_set/1:

.. rst-class:: right

**object**

``hook_set(Set)``
=================

* ``Set`` - Set (list) of hook objects.


Use a set (represented using a list) of hook objects to expand terms and goals. The hook objects are tried in sequence until one of them succeeds in expanding the current term (goal) into a different term (goal).

| **Availability:** 
|    ``logtalk_load(hook_flows(loader))``

| **Author:** Paulo Moura
| **Version:** 2:0:0
| **Date:** 2024-09-27

| **Compilation flags:**
|    ``static, context_switching_calls``


| **Implements:**
|    ``public`` :ref:`expanding <expanding/0>`

| **Remarks:**

   - Usage: Compile source files that should be expanded using the set of hook objects using the compiler option ``hook(hook_set(Set))``.

| **Inherited public predicates:**
|     :ref:`expanding/0::goal_expansion/2`  :ref:`expanding/0::term_expansion/2`  

.. contents::
   :local:
   :backlinks: top

Public predicates
-----------------

(no local declarations; see entity ancestors if any)

Protected predicates
--------------------

(no local declarations; see entity ancestors if any)

Private predicates
------------------

(no local declarations; see entity ancestors if any)

Operators
---------

(none)

.. seealso::

   :ref:`hook_pipeline(Pipeline) <hook_pipeline/1>`

