Stdlib.List
The lexicographic order supported by the provided order. There is no constraint on the relative lengths of the lists.
Returns true
if and only if the given lists have the same length and content with respect to the given equality function.
If all elements of the given list are Some _
then Some xs
is returned with the xs
being the contents of those Some
s, with order preserved. Otherwise return None
.
let r1, r2 = map2_prefix f l1 l2
If l1
is of length n and l2 = h2 @ t2
with h2 of length n, r1 is List.map2 f l1 h1
and r2 is t2.
Same as List.iter2
, but the function is applied to the index of the element as first argument (counting from 0)
split_at n l
returns the pair before, after
where before
is the n
first elements of l
and after
the remaining ones. If l
has less than n
elements, raises Invalid_argument.
chunks_of n t
returns a list of nonempty lists whose concatenation is equal to the original list. Every list has n
elements, except for possibly the last list, which may have fewer. chunks_of
raises if n <= 0
.
Returns true
if and only if the given list, with respect to the given equality function on list members, is a prefix of the list of_
.
let find_and_chop_longest_common_prefix:
equal:('a => 'a => bool) =>
first:list('a) =>
second:list('a) =>
longest_common_prefix_result('a);
Returns the longest list that, with respect to the provided equality function, is a prefix of both of the given lists. The input lists, each with such longest common prefix removed, are also returned.