An extension of the standard StringLabels. If you open! Core.Std, you'll get these in the String module.
Caseless
compares and hashes strings ignoring case, so that for example
Caseless.equal "OCaml" "ocaml"
and Caseless.("apple" < "Banana")
are true
, and
Caseless.Map
, Caseless.Table
lookup and Caseless.Set
membership is
case-insensitive.
String append. Also available unqualified, but re-exported here for documentation purposes.
Note that a ^ b
must copy both a
and b
into a newly-allocated result string, so
a ^ b ^ c ^ ... ^ z
is quadratic in the number of strings. String.concat
does not
have this problem -- it allocates the result buffer only once. The Rope
module
provides a data structure which uses a similar trick to achieve fast concatenation at
either end of a string.
Substring search and replace convenience functions. They call Search_pattern.create
and then forget the preprocessed pattern when the search is complete. pos < 0
or
pos >= length t
result in no match (hence substr_index
returns None
and
substr_index_exn
raises). may_overlap
indicates whether to report overlapping
matches, see Search_pattern.index_all
.
Returns the reversed list of characters contained in a list.
nget s i
Gets the char at normalized position i
in s
.
nset s i c
Sets the char at normalized position i
to c
.
lfindi ?pos t ~f
returns the smallest i >= pos
such that f i t.[i]
, if there is
such an i
. By default, pos = 0
.
rfindi ?pos t ~f
returns the largest i <= pos
such that f i t.[i]
, if there is
such an i
. By default pos = length t - 1
.
Warning: the following strip functions have copy-on-write semantics (i.e. they may return the same string passed in)
foldi
works similarly to fold
, but also pass in index of each character to f
tr_inplace target replacement s
destructively modifies s (in place!)
replacing every instance of target
in s
with replacement
.
slightly faster hash function on strings
is_empty s
returns true
iff s
is empty (i.e. its length is 0).
gen' ?length char_gen
generates strings using the given distributions for string
length and each character.