module List:sig
..end
type'a
t ='a list
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
由提供的顺序支持的字典序。对列表的相对长度没有约束。
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
当且仅当给定列表在给定相等函数方面具有相同的长度和内容时,返回true
。
val some_if_all_elements_are_some : 'a option t -> 'a t option
如果给定列表的所有元素都是Some _
,则返回Some xs
,其中xs
是这些Some
的内容,并保持顺序。否则返回None
。
val map2_prefix : ('a -> 'b -> 'c) ->
'a t ->
'b t -> 'c t * 'b t
let r1, r2 = map2_prefix f l1 l2
如果l1
的长度为 n 且l2 = h2 @ t2
,其中 h2 的长度为 n,则 r1 为List.map2 f l1 h1
,r2 为 t2。
val iteri2 : (int -> 'a -> 'b -> unit) -> 'a list -> 'b list -> unit
与List.iter2
相同,但函数将元素的索引作为第一个参数(从 0 开始计数)。
val split_at : int -> 'a t -> 'a t * 'a t
split_at n l
返回对before, after
,其中before
是l
的前n
个元素,after
是其余元素。如果l
的元素少于n
个,则引发 Invalid_argument。
val chunks_of : int -> 'a t -> 'a t t
chunks_of n t
返回一个非空列表列表,其连接等于原始列表。每个列表都有n
个元素,除了最后一个列表可能具有较少的元素。chunks_of
如果n <= 0
则引发异常。
val is_prefix : equal:('a -> 'a -> bool) -> 'a list -> of_:'a list -> bool
当且仅当给定列表(相对于列表成员上的给定相等函数)是列表of_
的前缀时,返回true
。
type 'a
longest_common_prefix_result = private {
|
longest_common_prefix : |
|
first_without_longest_common_prefix : |
|
second_without_longest_common_prefix : |
}
val find_and_chop_longest_common_prefix : equal:('a -> 'a -> bool) ->
first:'a list ->
second:'a list -> 'a longest_common_prefix_result
返回最长的列表,该列表相对于提供的相等函数,是两个给定列表的前缀。还返回每个输入列表(删除此类最长公共前缀)。