protocol
listp
¶
List protocol.
static
Public predicates¶
append/2
¶
Appends all lists in a list of lists.
static
append(Lists,Concatenation)
append(+list(list),?list)
- zero_or_one
append/3
¶
Appends two lists.
static
append(List1,List2,List)
append(?list,?list,?list)
- zero_or_more
delete/3
¶
Deletes from a list all occurrences of an element returning the list of remaining elements. Uses ==/2
for element comparison.
static
delete(List,Element,Remaining)
delete(@list,@term,?list)
- one
delete_matches/3
¶
Deletes all matching elements from a list, returning the list of remaining elements. Uses =/2
for element comparison.
static
delete_matches(List,Element,Remaining)
delete_matches(@list,@term,?list)
- one
empty/1
¶
True if the argument is an empty list.
static
empty(List)
empty(@list)
- zero_or_one
flatten/2
¶
Flattens a list of lists into a list.
static
flatten(List,Flatted)
flatten(+list,-list)
- one
hamming_distance/3
¶
Calculates the Hamming distance between two lists (using equality to compare list elements). Fails if the two lists are not of the same length.
static
hamming_distance(List1,List2,Distance)
hamming_distance(+list,+list,-integer)
- zero_or_one
keysort/2
¶
Sorts a list of key-value pairs in ascending order.
static
keysort(List,Sorted)
keysort(+list(pair),-list(pair))
- one
last/2
¶
List last element (if it exists).
static
last(List,Last)
last(?list,?term)
- zero_or_more
length/2
¶
List length.
static
length(List,Length)
length(?list,?integer)
- zero_or_more
max/2
¶
Determines the list maximum value using standard order. Fails if the list is empty.
static
max(List,Maximum)
max(+list,-term)
- zero_or_one
member/2
¶
Element is a list member.
static
member(Element,List)
member(?term,?list)
- zero_or_more
memberchk/2
¶
Checks if a term is a member of a list.
static
memberchk(Element,List)
memberchk(?term,?list)
- zero_or_one
min/2
¶
Determines the minimum value in a list using standard order. Fails if the list is empty.
static
min(List,Minimum)
min(+list,-term)
- zero_or_one
msort/2
¶
Sorts a list in ascending order (duplicated elements are not removed).
static
msort(List,Sorted)
msort(+list,-list)
- one
msort/3
¶
Sorts a list using a user-specified comparison predicate modeled on the standard compare/3 predicate (duplicated elements are not removed).
static
msort(Closure,List,Sorted)
msort(3,*,*)
msort(+callable,+list,-list)
- one
nextto/3
¶
X
and Y
are consecutive elements in List.
static
nextto(X,Y,List)
nextto(?term,?term,?list)
- zero_or_more
nth0/3
¶
Nth element of a list (counting from zero).
static
nth0(Nth,List,Element)
nth0(?integer,?list,?term)
- zero_or_more
nth0/4
¶
Nth element of a list (counting from zero).
static
nth0(Nth,List,Element,Residue)
nth0(?integer,?list,?term,?list)
- zero_or_more
nth1/3
¶
Nth element of a list (counting from one).
static
nth1(Nth,List,Element)
nth1(?integer,?list,?term)
- zero_or_more
nth1/4
¶
Nth element of a list (counting from one).
static
nth1(Nth,List,Element,Residue)
nth1(?integer,?list,?term,?list)
- zero_or_more
partition/5
¶
Partitions a list in lists with values less, equal, and greater than a given value (using standard order).
static
partition(List,Value,Less,Equal,Greater)
partition(+list,+number,-list,-list,-list)
- one
permutation/2
¶
The two lists are a permutation of the same list.
static
permutation(List,Permutation)
permutation(?list,?list)
- zero_or_more
prefix/2
¶
Prefix is a prefix of List.
static
prefix(Prefix,List)
prefix(?list,+list)
- zero_or_more
prefix/3
¶
Prefix is a prefix of length Length of List.
static
prefix(Prefix,Length,List)
prefix(?list,+integer,+list)
- zero_or_one
prefix(?list,-integer,+list)
- zero_or_more
proper_prefix/2
¶
Prefix is a proper prefix of List.
static
proper_prefix(Prefix,List)
proper_prefix(?list,+list)
- zero_or_more
proper_prefix/3
¶
Prefix is a proper prefix of length Length of List.
static
proper_prefix(Prefix,Length,List)
proper_prefix(?list,+integer,+list)
- zero_or_one
proper_prefix(?list,-integer,+list)
- zero_or_more
remove_duplicates/2
¶
Removes duplicated list elements using equality (==/2
) for comparison and keepying the left-most element when repeated.
static
remove_duplicates(List,Set)
reverse/2
¶
Reverses a list.
static
reverse(List,Reversed)
reverse(+list,-list)
- one
reverse(+list,?list)
- zero_or_one
reverse(?list,+list)
- zero_or_one
reverse(-list,-list)
- one_or_more
same_length/2
¶
The two lists have the same length.
static
same_length(List1,List2)
same_length(+list,?list)
- zero_or_one
same_length(?list,+list)
- zero_or_one
same_length(-list,-list)
- one_or_more
same_length/3
¶
The two lists have the same length.
static
same_length(List1,List2,Length)
same_length(+list,?list,?integer)
- zero_or_one
same_length(?list,+list,?integer)
- zero_or_one
same_length(-list,-list,-integer)
- one_or_more
select/3
¶
Selects an element from a list, returning the list of remaining elements.
static
select(Element,List,Remaining)
select(?term,?list,?list)
- zero_or_more
selectchk/3
¶
Checks that an element can be selected from a list, returning the list of remaining elements.
static
selectchk(Element,List,Remaining)
selectchk(?term,?list,?list)
- zero_or_one
select/4
¶
Selects an element from a list, replacing it by a new element and returning the resulting list.
static
select(Old,OldList,New,NewList)
select(?term,?list,?term,?list)
- zero_or_more
selectchk/4
¶
Checks that an element from a list can be replaced by a new element, returning the resulting list.
static
selectchk(Old,OldList,New,NewList)
selectchk(?term,?list,?term,?list)
- zero_or_one
sort/2
¶
Sorts a list in ascending order (duplicated elements are removed).
static
sort(List,Sorted)
sort(+list,-list)
- one
sort/3
¶
Sorts a list using a user-specified comparison predicate modeled on the standard compare/3
predicate (duplicated elements are removed).
static
sort(Closure,List,Sorted)
sort(3,*,*)
sort(+callable,+list,-list)
- one
sort/4
¶
Sorts a list using the given key and order. @< and @> orders remove duplicates while @=< and @>= orders keep them. @< and @=< specify ascending order while @> and @>= specify descending order. When the key is zero, the whole term is used for comparisons.
static
sort(Key,Order,List,Sorted)
sort(+non_negative_integer,+atom,+list,-list)
- one
split/4
¶
Splits a list into sublists of a given length. Also returns a list with the remaining elements. Fails if the length is zero or negative.
static
split(List,Length,Sublists,Remaining)
split(+list,+integer,-list(list),-list)
- zero_or_one
sublist/2
¶
The first list is a sublist of the second.
static
sublist(Sublist,List)
sublist(?list,+list)
- zero_or_more
subsequence/3
¶
List
is an interleaving of Subsequence
and Remaining
. Element order is preserved.
static
subsequence(List,Subsequence,Remaining)
subsequence(?list,?list,?list)
- zero_or_more
subsequence/4
¶
Generates subsequences of a given length from a list. Also returns the remaining elements. Element order is preserved.
static
subsequence(List,Length,Subsequence,Remaining)
subsequence(+list,+integer,?list,?list)
- zero_or_more
substitute/4
¶
Substitutes all occurrences of Old
in List
by New
, returning NewList
. Uses term equality for element comparison.
static
substitute(Old,List,New,NewList)
substitute(@term,@list,@term,-list)
- one
subtract/3
¶
Removes all elements in the second list from the first list, returning the list of remaining elements.
static
subtract(List,Elements,Remaining)
subtract(+list,+list,-list)
- one
suffix/2
¶
Suffix is a suffix of List.
static
suffix(Suffix,List)
suffix(?list,+list)
- zero_or_more
suffix/3
¶
Suffix is a suffix of length Length of List.
static
suffix(Suffix,Length,List)
suffix(?list,+integer,+list)
- zero_or_one
suffix(?list,-integer,+list)
- zero_or_more
proper_suffix/2
¶
Suffix is a proper suffix of List.
static
proper_suffix(Suffix,List)
proper_suffix(?list,+list)
- zero_or_more
proper_suffix/3
¶
Suffix is a proper suffix of length Length of List.
static
proper_suffix(Suffix,Length,List)
proper_suffix(?list,+integer,+list)
- zero_or_one
proper_suffix(?list,-integer,+list)
- zero_or_more
Protected predicates¶
(none)
Private predicates¶
(none)