☰

*ON THIS PAGE*# Identity lists

**Author(s):** Francisco Bueno.## Usage and interface

## Documentation on exports

`member_0(X,Xs)`
`memberchk(X,Xs)`
## Documentation on imports

This module has the following direct dependencies:

The operations in this module handle lists by performing equality checks via identity instead of unification.

**Library usage:**`:- use_module(library(idlists)).`**Exports:***Predicates:*`member_0/2`,`memberchk/2`,`list_insert/2`,`add_after/4`,`add_before/4`,`delete/3`,`subtract/3`,`union_idlists/3`.

PREDICATEmember_0/2

True iff memberchk/2 is true.

PREDICATEmemberchk/2

Checks that X is an element of (list) Xs.

PREDICATElist_insert/2

Usage:`list_insert(List,Term)`

Adds Term to the end of (tail-opened) List if there is not an element in List identical to Term.

*The following properties should hold at call time:*

(`term_typing:var/1`)List is a free variable.

(`term_typing:nonvar/1`)Term is currently a term which is not a free variable.

PREDICATEadd_after/4

Usage:`add_after(L0,E0,E,L)`

Adds element E after the first element identical to E0 (or at end) of list L0, returning in L the new list.

*The following properties should hold at call time:*

(`term_typing:nonvar/1`)L0 is currently a term which is not a free variable.

(`term_typing:nonvar/1`)E0 is currently a term which is not a free variable.

(`term_typing:nonvar/1`)E is currently a term which is not a free variable.

(`term_typing:var/1`)L is a free variable.

PREDICATEadd_before/4

Usage:`add_before(L0,E0,E,L)`

Adds element E before the first element identical to E0 (or at start) of list L0, returning in L the new list.

*The following properties should hold at call time:*

(`term_typing:nonvar/1`)L0 is currently a term which is not a free variable.

(`term_typing:nonvar/1`)E0 is currently a term which is not a free variable.

(`term_typing:nonvar/1`)E is currently a term which is not a free variable.

(`term_typing:var/1`)L is a free variable.

PREDICATEdelete/3

Usage:`delete(List,Element,Rest)`

Rest has the same elements of List except for all the occurrences of elements identical to Element.

*The following properties should hold at call time:*

(`term_typing:nonvar/1`)List is currently a term which is not a free variable.

(`term_typing:nonvar/1`)Element is currently a term which is not a free variable.

(`term_typing:var/1`)Rest is a free variable.

PREDICATEsubtract/3

Usage:`subtract(Set,Set0,Difference)`

Difference has the same elements of Set except those which have an identical occurrence in Set0.

*The following properties should hold at call time:*

(`term_typing:nonvar/1`)Set is currently a term which is not a free variable.

(`term_typing:nonvar/1`)Set0 is currently a term which is not a free variable.

(`term_typing:var/1`)Difference is a free variable.

PREDICATEunion_idlists/3

Usage:`union_idlists(List1,List2,List)`

List has the elements which are in List1 but are not identical to an element in List2 followed by the elements in List2.

*The following properties should hold at call time:*

(`term_typing:nonvar/1`)List1 is currently a term which is not a free variable.

(`term_typing:nonvar/1`)List2 is currently a term which is not a free variable.

(`term_typing:var/1`)List is a free variable.

*Packages:*`prelude`,`initial`,`condcomp`,`assertions`,`assertions/assertions_basic`,`isomodes`.

Generated with LPdoc using Ciao