Below is the API for the OCaml standard library. It's directly copied over from the OCaml Manual, formatted to the Reason syntax and styled accordingly. The API docs are work-in-progress; we'll be polishing these gradually!
If you're targeting JavaScript, the API docs for BuckleScript includes all of below, plus JS-specific APIs.
module String: StringLabels
val length : string -> int
val get : string -> int -> char
String.get s n
returns the character at index n
in string s
.
You can also write s.[n]
instead of String.get s n
.
Raise Invalid_argument
if n
not a valid index in s
.
val set : bytes -> int -> char -> unit
BytesLabels.set
.String.set s n c
modifies byte sequence s
in place,
replacing the byte at index n
with c
.
You can also write s.[n] <- c
instead of String.set s n c
.
Raise Invalid_argument
if n
is not a valid index in s
.
val create : int -> bytes
BytesLabels.create
.String.create n
returns a fresh byte sequence of length n
.
The sequence is uninitialized and contains arbitrary bytes.
Raise Invalid_argument
if n < 0
or n >
Sys.max_string_length
.
val make : int -> char -> string
String.make n c
returns a fresh string of length n
,
filled with the character c
.
Raise Invalid_argument
if n < 0
or n >
Sys.max_string_length
.
val init : int -> f:(int -> char) -> string
init n f
returns a string of length n
,
with character i
initialized to the result of f i
.
Raise Invalid_argument
if n < 0
or n >
Sys.max_string_length
.
val copy : string -> string
val sub : string -> pos:int -> len:int -> string
String.sub s start len
returns a fresh string of length len
,
containing the substring of s
that starts at position start
and
has length len
.
Raise Invalid_argument
if start
and len
do not
designate a valid substring of s
.
val fill : bytes -> pos:int -> len:int -> char -> unit
BytesLabels.fill
.String.fill s start len c
modifies byte sequence s
in place,
replacing len
bytes by c
, starting at start
.
Raise Invalid_argument
if start
and len
do not
designate a valid substring of s
.
val blit : src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int -> unit
String.blit src srcoff dst dstoff len
copies len
bytes
from the string src
, starting at index srcoff
,
to byte sequence dst
, starting at character number dstoff
.
Raise Invalid_argument
if srcoff
and len
do not
designate a valid range of src
, or if dstoff
and len
do not designate a valid range of dst
.
val concat : sep:string -> string list -> string
String.concat sep sl
concatenates the list of strings sl
,
inserting the separator string sep
between each.val iter : f:(char -> unit) -> string -> unit
String.iter f s
applies function f
in turn to all
the characters of s
. It is equivalent to
f s.[0]; f s.[1]; ...; f s.[String.length s - 1]; ()
.val iteri : f:(int -> char -> unit) -> string -> unit
String.iter
, but the
function is applied to the index of the element as first argument
(counting from 0), and the character itself as second argument.val map : f:(char -> char) -> string -> string
String.map f s
applies function f
in turn to all
the characters of s
and stores the results in a new string that
is returned.val mapi : f:(int -> char -> char) -> string -> string
String.mapi f s
calls f
with each character of s
and its
index (in increasing index order) and stores the results in a new
string that is returned.val trim : string -> string
' '
,
'\012'
, '\n'
, '\r'
, and '\t'
. If there is no leading nor
trailing whitespace character in the argument, return the original
string itself, not a copy.val escaped : string -> string
val index : string -> char -> int
String.index s c
returns the index of the first
occurrence of character c
in string s
.
Raise Not_found
if c
does not occur in s
.
val rindex : string -> char -> int
String.rindex s c
returns the index of the last
occurrence of character c
in string s
.
Raise Not_found
if c
does not occur in s
.
val index_from : string -> int -> char -> int
String.index_from s i c
returns the index of the
first occurrence of character c
in string s
after position i
.
String.index s c
is equivalent to String.index_from s 0 c
.
Raise Invalid_argument
if i
is not a valid position in s
.
Raise Not_found
if c
does not occur in s
after position i
.
val rindex_from : string -> int -> char -> int
String.rindex_from s i c
returns the index of the
last occurrence of character c
in string s
before position i+1
.
String.rindex s c
is equivalent to
String.rindex_from s (String.length s - 1) c
.
Raise Invalid_argument
if i+1
is not a valid position in s
.
Raise Not_found
if c
does not occur in s
before position i+1
.
val contains : string -> char -> bool
String.contains s c
tests if character c
appears in the string s
.val contains_from : string -> int -> char -> bool
String.contains_from s start c
tests if character c
appears in s
after position start
.
String.contains s c
is equivalent to
String.contains_from s 0 c
.
Raise Invalid_argument
if start
is not a valid position in s
.
val rcontains_from : string -> int -> char -> bool
String.rcontains_from s stop c
tests if character c
appears in s
before position stop+1
.
Raise Invalid_argument
if stop < 0
or stop+1
is not a valid
position in s
.
val uppercase : string -> string
val lowercase : string -> string
val capitalize : string -> string
val uncapitalize : string -> string
type t = string
val compare : t -> t -> int
Pervasives.compare
. Along with the type t
, this function compare
allows the module String
to be passed as argument to the functors
Set.Make
and Map.Make
.