Goblint_std.GobList
The normal haskell zip that throws no exception
remove_common_prefix eq l1 l2
removes the common prefix (p
) of l1
and l2
and returns the rest of both lists a pair (l1', l2')
. Formally, p @ l1' = l1
and p @ l2' = l2
such that p
has maximal length.
This can be used to check being a prefix in both directions simultaneously:
l1' = []
, then l1
is a prefix of l2
,l2' = []
, then l2
is a prefix of l1
.In other cases, the common prefix is not returned (i.e. reconstructed) for efficiency reasons.
Given a predicate and a list, returns two lists (l1, l2)
. l1
contains the prefix of the list until the last element that satisfies the predicate, l2
contains all subsequent elements. The order of elements is preserved.
module Syntax : sig ... end
Open this to use applicative functor/monad syntax for list
.