.. index:: single: zlist
.. _zlist/0:

.. rst-class:: right

**object**

``zlist``
=========

Zipper list predicates. Zippers should be regarded as opaque terms.

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

| **Author:** Paulo Moura
| **Version:** 1:0:1
| **Date:** 2019-03-12

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


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

| **Remarks:**
|    (none)

| **Inherited public predicates:**
|     :ref:`zipperp/0::apply/2`  :ref:`zipperp/0::current/2`  :ref:`zipperp/0::delete_all_after/2`  :ref:`zipperp/0::delete_all_after_and_unzip/2`  :ref:`zipperp/0::delete_all_before/2`  :ref:`zipperp/0::delete_all_before_and_unzip/2`  :ref:`zipperp/0::delete_and_next/2`  :ref:`zipperp/0::delete_and_previous/2`  :ref:`zipperp/0::delete_and_unzip/2`  :ref:`zipperp/0::forward/2`  :ref:`zipperp/0::forward/3`  :ref:`zipperp/0::insert_after/3`  :ref:`zipperp/0::insert_before/3`  :ref:`zipperp/0::next/2`  :ref:`zipperp/0::next/3`  :ref:`zipperp/0::previous/2`  :ref:`zipperp/0::previous/3`  :ref:`zipperp/0::replace/3`  :ref:`zipperp/0::rewind/2`  :ref:`zipperp/0::rewind/3`  :ref:`zipperp/0::unzip/2`  :ref:`zipperp/0::zip/2`  :ref:`zipperp/0::zip/3`  

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

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

.. index:: zip_at_index/4
.. _zlist/0::zip_at_index/4:

``zip_at_index/4``
^^^^^^^^^^^^^^^^^^

Adds a zipper to a list opened at the given index and also returns the element at the index. Fails if the list is empty or the index (starting at 1) does not exist.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``zip_at_index(Index,List,Zipper,Element)``
| **Mode and number of proofs:**
|    ``zip_at_index(+natural,+list,--zipper,--term)`` - ``zero_or_one``


------------

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

(no local declarations; see entity ancestors if any)

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

(no local declarations; see entity ancestors if any)

Operators
---------

(none)

