This package defines operations on lists. Lists are a very basic data structure, but nevertheless certain very frequent operations are provided in this package.
To load the package, enter the query
| ?- use_module(library(lists)).
append(?Prefix, ?Suffix, ?Combined)
delete(+List, +Element, ?Residue)
is_list(+List)
last(?List, ?Last)
| ?- last([x,y,z], Z). Z = z ? yes
max_list(+ListOfNumbers, ?Max)
member(?Element, ?List)
| ?- member(X, [a,b,c]). X = a ? ; X = b ? ; X = c ? yes
memberchk(+Element, +List)
memberchk/2
only
succeeds once and can therefore not be used to enumerate the elements in
List. Example:
| ?- memberchk(X, [a,b,c]). X = a ? ; no
min_list(+ListOfNumbers, ?Min)
nextto(?X, ?Y, ?List)
| ?- nextto(X, Y, [1,2,3]). X = 1, Y = 2 ? ; X = 2, Y = 3 ? ; no
no_doubles(?List)
dif(X, Y)
holds for all pairs of members X and
Y of the list.
non_member(?Element, ?List)
dif(Element, Y)
holds for all members Y of the
list.
nth(?N, ?List, ?Element)
| ?- nth(N, [a,b,c,d,e,f,g,h,i], f). N = 6 ? yes
nth(?N, ?List, ?Element, ?Rest)
nth0(?N, ?List, ?Element)
nth0(?N, ?List, ?Element, ?Rest)
| ?- nth0(N, [a,b,c,d,e,f,g,h,i,j], f, R). N = 5, R = [a,b,c,d,e,g,h,i,j] ? yes
permutation(?List, ?Perm)
prefix(?Prefix, ?List)
| ?- prefix([1,2,3], [1,2,3,4,5,6]). yes
remove_duplicates(+List, ?Pruned)
| ?- remove_duplicates([1,2,3,2,3,1], P). P = [1,2,3] ? ; no
reverse(?List, ?Reversed)
same_length(?List1, ?List2)
same_length(?List1, ?List2, ?Length)
| ?- same_length([1,2,3], [9,8,7], N). N = 3 ? ; no
select(?Element, ?List, ?List2)
sublist(?Sub, ?List)
substitute(+X, +Xlist, +Y, ?Ylist)
| ?- substitute(1, [1,2,3,4], 5, X). X = [5,2,3,4] ? yes
sum_list(+ListOfNumbers, ?Sum)
suffix(?Suffix, ?List)