Sys.Signals module for a Variant type of signals (and a set_signal function that...
[ocaml.git] / stdlib / stdLabels.mli
blob73f72dc6874f0659d53ef5d8ed98c8b64b6d4edd
1 (***********************************************************************)
2 (* *)
3 (* Objective Caml *)
4 (* *)
5 (* Jacques Garrigue, Kyoto University RIMS *)
6 (* *)
7 (* Copyright 2001 Institut National de Recherche en Informatique et *)
8 (* en Automatique. All rights reserved. This file is distributed *)
9 (* under the terms of the GNU Library General Public License, with *)
10 (* the special exception on linking described in file ../LICENSE. *)
11 (* *)
12 (***********************************************************************)
14 (* $Id$ *)
16 (** Standard labeled libraries.
18 This meta-module provides labelized version of the {!Array},
19 {!List} and {!String} modules.
21 They only differ by their labels. Detailed interfaces can be found
22 in [arrayLabels.mli], [listLabels.mli] and [stringLabels.mli].
25 module Array :
26 sig
27 external length : 'a array -> int = "%array_length"
28 external get : 'a array -> int -> 'a = "%array_safe_get"
29 external set : 'a array -> int -> 'a -> unit = "%array_safe_set"
30 external make : int -> 'a -> 'a array = "caml_make_vect"
31 external create : int -> 'a -> 'a array = "caml_make_vect"
32 val init : int -> f:(int -> 'a) -> 'a array
33 val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
34 val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array
35 val append : 'a array -> 'a array -> 'a array
36 val concat : 'a array list -> 'a array
37 val sub : 'a array -> pos:int -> len:int -> 'a array
38 val copy : 'a array -> 'a array
39 val fill : 'a array -> pos:int -> len:int -> 'a -> unit
40 val blit :
41 src:'a array -> src_pos:int -> dst:'a array -> dst_pos:int -> len:int ->
42 unit
43 val to_list : 'a array -> 'a list
44 val of_list : 'a list -> 'a array
45 val iter : f:('a -> unit) -> 'a array -> unit
46 val map : f:('a -> 'b) -> 'a array -> 'b array
47 val iteri : f:(int -> 'a -> unit) -> 'a array -> unit
48 val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array
49 val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a
50 val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b
51 val sort : cmp:('a -> 'a -> int) -> 'a array -> unit
52 val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
53 val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit
54 external unsafe_get : 'a array -> int -> 'a = "%array_unsafe_get"
55 external unsafe_set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
56 end
58 module List :
59 sig
60 val length : 'a list -> int
61 val hd : 'a list -> 'a
62 val tl : 'a list -> 'a list
63 val nth : 'a list -> int -> 'a
64 val rev : 'a list -> 'a list
65 val append : 'a list -> 'a list -> 'a list
66 val rev_append : 'a list -> 'a list -> 'a list
67 val concat : 'a list list -> 'a list
68 val flatten : 'a list list -> 'a list
69 val iter : f:('a -> unit) -> 'a list -> unit
70 val map : f:('a -> 'b) -> 'a list -> 'b list
71 val rev_map : f:('a -> 'b) -> 'a list -> 'b list
72 val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a
73 val fold_right : f:('a -> 'b -> 'b) -> 'a list -> init:'b -> 'b
74 val iter2 : f:('a -> 'b -> unit) -> 'a list -> 'b list -> unit
75 val map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
76 val rev_map2 : f:('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
77 val fold_left2 :
78 f:('a -> 'b -> 'c -> 'a) -> init:'a -> 'b list -> 'c list -> 'a
79 val fold_right2 :
80 f:('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> init:'c -> 'c
81 val for_all : f:('a -> bool) -> 'a list -> bool
82 val exists : f:('a -> bool) -> 'a list -> bool
83 val for_all2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
84 val exists2 : f:('a -> 'b -> bool) -> 'a list -> 'b list -> bool
85 val mem : 'a -> set:'a list -> bool
86 val memq : 'a -> set:'a list -> bool
87 val find : f:('a -> bool) -> 'a list -> 'a
88 val filter : f:('a -> bool) -> 'a list -> 'a list
89 val find_all : f:('a -> bool) -> 'a list -> 'a list
90 val partition : f:('a -> bool) -> 'a list -> 'a list * 'a list
91 val assoc : 'a -> ('a * 'b) list -> 'b
92 val assq : 'a -> ('a * 'b) list -> 'b
93 val mem_assoc : 'a -> map:('a * 'b) list -> bool
94 val mem_assq : 'a -> map:('a * 'b) list -> bool
95 val remove_assoc : 'a -> ('a * 'b) list -> ('a * 'b) list
96 val remove_assq : 'a -> ('a * 'b) list -> ('a * 'b) list
97 val split : ('a * 'b) list -> 'a list * 'b list
98 val combine : 'a list -> 'b list -> ('a * 'b) list
99 val sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
100 val stable_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
101 val fast_sort : cmp:('a -> 'a -> int) -> 'a list -> 'a list
102 val merge : cmp:('a -> 'a -> int) -> 'a list -> 'a list -> 'a list
105 module String :
107 external length : string -> int = "%string_length"
108 external get : string -> int -> char = "%string_safe_get"
109 external set : string -> int -> char -> unit = "%string_safe_set"
110 external create : int -> string = "caml_create_string"
111 val make : int -> char -> string
112 val copy : string -> string
113 val sub : string -> pos:int -> len:int -> string
114 val fill : string -> pos:int -> len:int -> char -> unit
115 val blit :
116 src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int ->
117 unit
118 val concat : sep:string -> string list -> string
119 val iter : f:(char -> unit) -> string -> unit
120 val escaped : string -> string
121 val index : string -> char -> int
122 val rindex : string -> char -> int
123 val index_from : string -> int -> char -> int
124 val rindex_from : string -> int -> char -> int
125 val contains : string -> char -> bool
126 val contains_from : string -> int -> char -> bool
127 val rcontains_from : string -> int -> char -> bool
128 val uppercase : string -> string
129 val lowercase : string -> string
130 val capitalize : string -> string
131 val uncapitalize : string -> string
132 type t = string
133 val compare: t -> t -> int
134 external unsafe_get : string -> int -> char = "%string_unsafe_get"
135 external unsafe_set : string -> int -> char -> unit = "%string_unsafe_set"
136 external unsafe_blit :
137 src:string -> src_pos:int -> dst:string -> dst_pos:int -> len:int ->
138 unit = "caml_blit_string" "noalloc"
139 external unsafe_fill : string -> pos:int -> len:int -> char -> unit
140 = "caml_fill_string" "noalloc"