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
返回最長的列表,該列表(根據提供的相等函數)是兩個給定列表的前綴。也會返回移除此最長共同前綴後的輸入列表。