include Core.String
This module extends Base.String.
include sig ... end
val bin_t : t Bin_prot.Type_class.t
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (int ‑> t) Bin_prot.Read.reader
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_shape_t : Bin_prot.Shape.t
val typerep_of_t : t Typerep_lib.Std.Typerep.t
val typename_of_t : t Typerep_lib.Std.Typename.t
module Caseless = Core_kernel.String.Caseless
include module type of sig ... end with type t := t with module Caseless := Base.String.Caseless
module Caseless = Base__String.Caseless
val blit : (t, bytes) Base.Blit.blit
val blito : (t, bytes) Base.Blit.blito
val unsafe_blit : (t, bytes) Base.Blit.blit
val sub : (t, t) Base.Blit.sub
val subo : (t, t) Base.Blit.subo
val fold_result : t ‑> init:'accum ‑> f:('accum ‑> elt ‑> ('accum, 'e) Base.Result.t) ‑> ('accum, 'e) Base.Result.t
val fold_until : t ‑> init:'accum ‑> f:('accum ‑> elt ‑> ('accum, 'stop) Base.Container_intf.Continue_or_stop.t) ‑> ('accum, 'stop) Base.Container_intf.Finished_or_stopped_early.t
val sum : (module Base.Commutative_group.S with type t = 'sum) ‑> t ‑> f:(elt ‑> 'sum) ‑> 'sum
val hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.state
val t_of_sexp : Base.Sexp.t ‑> t
val sexp_of_t : t ‑> Base.Sexp.t
val of_string : string ‑> t
val to_string : t ‑> string
val clamp : t ‑> min:t ‑> max:t ‑> t Base.Or_error.t
val comparator : (t, comparator_witness) Base.Comparator.comparator
val validate_lbound : min:t Base.Maybe_bound.t ‑> t Base.Validate.check
val validate_ubound : max:t Base.Maybe_bound.t ‑> t Base.Validate.check
val validate_bound : min:t Base.Maybe_bound.t ‑> max:t Base.Maybe_bound.t ‑> t Base.Validate.check
val pp : Caml.Format.formatter ‑> t ‑> unit
external length : t ‑> int =
external get : t ‑> int ‑> char =
val make : int ‑> char ‑> t
val init : int ‑> f:(int ‑> char) ‑> t
val contains : ?pos:int ‑> ?len:int ‑> t ‑> char ‑> bool
val index : t ‑> char ‑> int option
val index_exn : t ‑> char ‑> int
val rindex : t ‑> char ‑> int option
val rindex_exn : t ‑> char ‑> int
val index_from : t ‑> int ‑> char ‑> int option
val index_from_exn : t ‑> int ‑> char ‑> int
val rindex_from : t ‑> int ‑> char ‑> int option
val rindex_from_exn : t ‑> int ‑> char ‑> int
val to_list_rev : t ‑> char list
val nget : t ‑> int ‑> char
val lfindi : ?pos:int ‑> t ‑> f:(int ‑> char ‑> bool) ‑> int option
val rfindi : ?pos:int ‑> t ‑> f:(int ‑> char ‑> bool) ‑> int option
val foldi : t ‑> init:'a ‑> f:(int ‑> 'a ‑> char ‑> 'a) ‑> 'a
external hash : t ‑> int =
val is_empty : t ‑> bool
val of_char : char ‑> t
val of_char_list : char list ‑> t
module Escaping = Base__String.Escaping
take_while s ~f
returns the longest prefix of s
satisfying for_all prefix ~f
(See lstrip
to drop such a prefix)
rtake_while s ~f
returns the longest suffix of s
satisfying for_all suffix ~f
(See rstrip
to drop such a suffix)
include Core_kernel.Identifiable.S with type t := t and type comparator_witness := comparator_witness
include sig ... end
val bin_t : t Bin_prot.Type_class.t
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (Core_kernel__.Import.int ‑> t) Bin_prot.Read.reader
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_shape_t : Bin_prot.Shape.t
val hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.state
val hash : t ‑> Base.Hash.hash_value
val t_of_sexp : Sexplib.Sexp.t ‑> t
val sexp_of_t : t ‑> Sexplib.Sexp.t
include Core_kernel.Identifiable.S_common with type t := t
include sig ... end
val compare : t ‑> t ‑> Core_kernel__.Import.int
val hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.state
val hash : t ‑> Base.Hash.hash_value
val sexp_of_t : t ‑> Sexplib.Sexp.t
include Core_kernel__.Import.Stringable.S with type t := t
val of_string : string ‑> t
val to_string : t ‑> string
include Core_kernel__.Import.Pretty_printer.S with type t := t
val pp : Caml.Format.formatter ‑> t ‑> unit
include Core_kernel.Comparable.S_binable with type t := t
include Core_kernel__.Comparable_intf.S_common
include Base.Comparable_intf.S
include Base.Comparable_intf.Polymorphic_compare
ascending
is identical to compare
. descending x y = ascending y x
. These are
intended to be mnemonic when used like List.sort ~cmp:ascending
and List.sort
~cmp:descending
, since they cause the list to be sorted in ascending or descending
order, respectively.
clamp_exn t ~min ~max
returns t'
, the closest value to t
such that
between t' ~low:min ~high:max
is true.
Raises if not (min <= max)
.
val clamp : t ‑> min:t ‑> max:t ‑> t Base.Or_error.t
include Base.Comparator.S with type t := t
val comparator : (t, comparator_witness) Base.Comparator.comparator
include Base.Comparable_intf.Validate with type t := t
val validate_lbound : min:t Base.Maybe_bound.t ‑> t Base.Validate.check
val validate_ubound : max:t Base.Maybe_bound.t ‑> t Base.Validate.check
val validate_bound : min:t Base.Maybe_bound.t ‑> max:t Base.Maybe_bound.t ‑> t Base.Validate.check
module Replace_polymorphic_compare : Core_kernel__.Comparable_intf.Polymorphic_compare with type t := t
include Core_kernel__.Comparable_intf.Map_and_set_binable with type t := t with type comparator_witness := comparator_witness
include Core_kernel.Comparator.S with type t := t
val comparator : (t, comparator_witness) Core_kernel.Comparator.comparator
module Map : Core_kernel.Map.S_binable with type Key.t = t with type Key.comparator_witness = comparator_witness
module Set : Core_kernel.Set.S_binable with type Elt.t = t with type Elt.comparator_witness = comparator_witness
include Core_kernel.Hashable.S_binable with type t := t
include sig ... end
val hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.state
val hash : t ‑> Base.Hash.hash_value
val hashable : t Core_kernel.Hashtbl.Hashable.t
module Table : Core_kernel.Hashtbl.S_binable with type key = t
module Hash_set : Core_kernel.Hash_set.S_binable with type elt = t
module Hash_queue : Core_kernel.Hash_queue.S with type Key.t = t
val gen' : char Core_kernel.Quickcheck.Generator.t ‑> t Core_kernel.Quickcheck.Generator.t
Like gen
, but generate strings with the given distribution of characters.
val gen_with_length : int ‑> char Core_kernel.Quickcheck.Generator.t ‑> t Core_kernel.Quickcheck.Generator.t
Like gen'
, but generate strings with the given length.
module Stable = Core_kernel.String.Stable
Note that string
is already stable by itself, since as a primitive type it is an
integral part of the sexp / bin_io protocol. String.Stable
exists only to introduce
String.Stable.Set
and String.Stable.Map
, and provide interface uniformity with
other stable types.
include Extended_string
Extensions to Core.Core_String
.
val collate : string ‑> string ‑> int
collate s1 s2
sorts string in an order that's usaully more suited for human
consumption by treating ints specially, e.g. it will output:
["rfc1.txt";"rfc822.txt";"rfc2086.txt"]
.
It works by splitting the strings in numerical and non-numerical chunks and comparing chunks two by two from left to right (and starting on a non numerical chunk):
It is a total order.
val unescaped : ?strict:bool ‑> string ‑> string
unescaped s
is the inverse operation of escaped
: it takes a string where
all the special characters are escaped following the lexical convention of
OCaml and returns an unescaped copy.
The strict
switch is on by default and makes the function treat illegal
backslashes as errors.
When strict
is false
every illegal backslash except escaped numeral
greater than 255
is copied literally. The aforementioned numerals still
raise errors. This mimics the behaviour of the ocaml lexer.
val unescaped_res : ?strict:bool ‑> string ‑> (string, int * string) Core.Result.t
Same as unescaped
but instead of raising Failure _
returns an error
message with the position in the string in case of failure.
val squeeze : string ‑> string
squeeze str
reduces all sequences of spaces, newlines, tables, and
* carriage returns to single spaces.
val is_substring_deprecated : substring:string ‑> string ‑> bool
Use Core.String.is_substring instead of this function. This wrapper is here (for now) to maintain bug compatibility.
val pad_left : ?char:char ‑> string ‑> int ‑> string
pad_left ~char s len
Returns s
padded to the length len
by adding characters char
to the
left of the string. If s is already longer than len
it is returned unchanged.
val word_wrap : ?trailing_nl:bool ‑> ?soft_limit:int ‑> ?hard_limit:int ‑> ?nl:string ‑> string ‑> string
word_wrap ~soft_limit s
Wraps the string so that it fits the length soft_limit
. It doesn't break
words unless we go over hard_limit
.
if nl
is passed it is inserted instead of the normal newline character.
val edit_distance : ?transpose:unit ‑> string ‑> string ‑> int
Gives the Levenshtein distance between 2 strings, which is the number of insertions,
deletions, and substitutions necessary to turn either string into the other. With the
transpose
argument, it alsos considers transpositions (Damerau-Levenshtein
distance).