<HTML> <HEAD> <!-- Created by texi2html 1.56k + clip patches and <A href="http://www.clip.dia.fi.upm.es/Software">lpdoc</A> from ciao.texi on 28 January 2007 --> <LINK rel="stylesheet" href="ciao.css" type="text/css"> <TITLE>The Ciao Prolog System - Identity lists</TITLE> </HEAD> <BODY> Go to the <A HREF="ciao_1.html">first</A>, <A HREF="ciao_165.html">previous</A>, <A HREF="ciao_167.html">next</A>, <A HREF="ciao_241.html">last</A> section, <A HREF="ciao_toc.html">table of contents</A>. <P><HR><P> <H1><A NAME="SEC689" HREF="ciao_toc.html#TOC689">Identity lists</A></H1> <P> <A NAME="IDX7783"></A> <P> <STRONG>Author(s):</STRONG> Francisco Bueno. <P> <STRONG>Version:</STRONG> 1.9#266 (2004/1/1, 14:1:7 CET) <P> The operations in this module handle lists by performing equality checks via identity instead of unification. <UL> <LI><A HREF="ciao_166.html#SEC690">Usage and interface (idlists)</A> <LI><A HREF="ciao_166.html#SEC691">Documentation on exports (idlists)</A> </UL> <H2><A NAME="SEC690" HREF="ciao_toc.html#TOC690">Usage and interface (<CODE>idlists</CODE>)</A></H2> <div class="cartouche"> <UL> <LI><STRONG>Library usage:</STRONG> <CODE>:- use_module(library(idlists)).</CODE> <LI><STRONG>Exports:</STRONG> <UL> <LI><EM>Predicates:</EM> <A NAME="IDX7784"></A> <CODE>member_0/2</CODE>, <A NAME="IDX7785"></A> <CODE>memberchk/2</CODE>, <A NAME="IDX7786"></A> <CODE>list_insert/2</CODE>, <A NAME="IDX7787"></A> <CODE>add_after/4</CODE>, <A NAME="IDX7788"></A> <CODE>add_before/4</CODE>, <A NAME="IDX7789"></A> <CODE>delete/3</CODE>, <A NAME="IDX7790"></A> <CODE>subtract/3</CODE>, <A NAME="IDX7791"></A> <CODE>union_idlists/3</CODE>. </UL> </UL> </div class="cartouche"> <H2><A NAME="SEC691" HREF="ciao_toc.html#TOC691">Documentation on exports (<CODE>idlists</CODE>)</A></H2> <P> <A NAME="IDX7792"></A> <A NAME="IDX7793"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>member_0/2:</B> <DD><A NAME="IDX7794"></A> <P> <CODE>member_0(X, Xs)</CODE> <P> True iff memberchk/2 is true. </DL> <P> <A NAME="IDX7795"></A> <A NAME="IDX7796"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>memberchk/2:</B> <DD><A NAME="IDX7797"></A> <P> <CODE>memberchk(X, Xs)</CODE> <P> Checks that <CODE>X</CODE> is an element of (list) <CODE>Xs</CODE>. </DL> <P> <A NAME="IDX7798"></A> <A NAME="IDX7799"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>list_insert/2:</B> <DD><A NAME="IDX7800"></A> <P> <STRONG>Usage:</STRONG> <CODE>list_insert(-List, +Term)</CODE> <UL> <LI><EM>Description:</EM> Adds <CODE>Term</CODE> to the end of (tail-opened) <CODE>List</CODE> if there is not an element in <CODE>List</CODE> identical to <CODE>Term</CODE>. </UL> </DL> <P> <A NAME="IDX7801"></A> <A NAME="IDX7802"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>add_after/4:</B> <DD><A NAME="IDX7803"></A> <P> <STRONG>Usage:</STRONG> <CODE>add_after(+L0, +E0, +E, -L)</CODE> <UL> <LI><EM>Description:</EM> Adds element <CODE>E</CODE> after the first element identical to <CODE>E0</CODE> (or at end) of list <CODE>L0</CODE>, returning in <CODE>L</CODE> the new list. </UL> </DL> <P> <A NAME="IDX7804"></A> <A NAME="IDX7805"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>add_before/4:</B> <DD><A NAME="IDX7806"></A> <P> <STRONG>Usage:</STRONG> <CODE>add_before(+L0, +E0, +E, -L)</CODE> <UL> <LI><EM>Description:</EM> Adds element <CODE>E</CODE> before the first element identical to <CODE>E0</CODE> (or at start) of list <CODE>L0</CODE>, returning in <CODE>L</CODE> the new list. </UL> </DL> <P> <A NAME="IDX7807"></A> <A NAME="IDX7808"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>delete/3:</B> <DD><A NAME="IDX7809"></A> <P> <STRONG>Usage:</STRONG> <CODE>delete(+List, +Element, -Rest)</CODE> <UL> <LI><EM>Description:</EM> <CODE>Rest</CODE> has the same elements of <CODE>List</CODE> except for all the occurrences of elements identical to <CODE>Element</CODE>. </UL> </DL> <P> <A NAME="IDX7810"></A> <A NAME="IDX7811"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>subtract/3:</B> <DD><A NAME="IDX7812"></A> <P> <STRONG>Usage:</STRONG> <CODE>subtract(+Set, +Set0, -Difference)</CODE> <UL> <LI><EM>Description:</EM> <CODE>Difference</CODE> has the same elements of <CODE>Set</CODE> except those which have an identical occurrence in <CODE>Set0</CODE>. </UL> </DL> <P> <A NAME="IDX7813"></A> <A NAME="IDX7814"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>union_idlists/3:</B> <DD><A NAME="IDX7815"></A> <P> <STRONG>Usage:</STRONG> <CODE>union_idlists(+List1, +List2, -List)</CODE> <UL> <LI><EM>Description:</EM> <CODE>List</CODE> has the elements which are in <CODE>List1</CODE> but are not identical to an element in <CODE>List2</CODE> followed by the elements in <CODE>List2</CODE>. </UL> </DL> <P><HR><P> Go to the <A HREF="ciao_1.html">first</A>, <A HREF="ciao_165.html">previous</A>, <A HREF="ciao_167.html">next</A>, <A HREF="ciao_241.html">last</A> section, <A HREF="ciao_toc.html">table of contents</A>. </BODY> </HTML>