mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
2 lines
No EOL
44 KiB
HTML
2 lines
No EOL
44 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCStringLabels (containers.CCStringLabels)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">containers</a> » CCStringLabels</nav><h1>Module <code>CCStringLabels</code></h1><h2 id="basic-string-utils"><a href="#basic-string-utils" class="anchor"></a>Basic String Utils</h2><nav class="toc"><ul><li><a href="#common-signature">Common Signature</a></li><li><a href="#strings">Strings</a></li><li><a href="#operations-on-2-strings">Operations on 2 strings</a></li><li><a href="#ascii-functions">Ascii functions</a></li><li><a href="#finding">Finding</a></li><li><a href="#splitting">Splitting</a></li><li><a href="#utils">Utils</a></li><li><a href="#slices">Slices</a></li></ul></nav></header><dl><dt class="spec type" id="type-sequence"><a href="#type-sequence" class="anchor"></a><code><span class="keyword">type</span> 'a sequence</code><code> = (<span class="type-var">'a</span> <span>-></span> unit) <span>-></span> unit</code></dt><dd><dl><dt>deprecated</dt><dd><p>use <code>'a iter</code> instead</p></dd></dl></dd></dl><dl><dt class="spec type" id="type-iter"><a href="#type-iter" class="anchor"></a><code><span class="keyword">type</span> 'a iter</code><code> = (<span class="type-var">'a</span> <span>-></span> unit) <span>-></span> unit</code></dt><dd><p>Fast internal iterator.</p><dl><dt>since</dt><dd>2.8</dd></dl></dd></dl><dl><dt class="spec type" id="type-gen"><a href="#type-gen" class="anchor"></a><code><span class="keyword">type</span> 'a gen</code><code> = unit <span>-></span> <span class="type-var">'a</span> option</code></dt><dt class="spec type" id="type-klist"><a href="#type-klist" class="anchor"></a><code><span class="keyword">type</span> 'a klist</code><code> = unit <span>-></span> [ `Nil | `Cons of <span class="type-var">'a</span> * <span class="type-var">'a</span> <a href="index.html#type-klist">klist</a> ]</code></dt></dl><section><header><h3 id="common-signature"><a href="#common-signature" class="anchor"></a>Common Signature</h3></header><div class="spec module-type" id="module-type-S"><a href="#module-type-S" class="anchor"></a><code><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-S/index.html">S</a> = <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div></section><section><header><h3 id="strings"><a href="#strings" class="anchor"></a>Strings</h3></header><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <span class="keyword">module</span> <span class="keyword">type</span> <span class="keyword">of</span> <span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><dl><dt class="spec external" id="val-length"><a href="#val-length" class="anchor"></a><code><span class="keyword">val</span> length : string <span>-></span> int</code></dt><dt class="spec external" id="val-get"><a href="#val-get" class="anchor"></a><code><span class="keyword">val</span> get : string <span>-></span> int <span>-></span> char</code></dt><dt class="spec external" id="val-set"><a href="#val-set" class="anchor"></a><code><span class="keyword">val</span> set : bytes <span>-></span> int <span>-></span> char <span>-></span> unit</code></dt><dt class="spec external" id="val-create"><a href="#val-create" class="anchor"></a><code><span class="keyword">val</span> create : int <span>-></span> bytes</code></dt></dl><dl><dt class="spec value" id="val-make"><a href="#val-make" class="anchor"></a><code><span class="keyword">val</span> make : int <span>-></span> char <span>-></span> string</code></dt><dt class="spec value" id="val-init"><a href="#val-init" class="anchor"></a><code><span class="keyword">val</span> init : int <span>-></span> f:(int <span>-></span> char) <span>-></span> string</code></dt><dt class="spec value" id="val-copy"><a href="#val-copy" class="anchor"></a><code><span class="keyword">val</span> copy : string <span>-></span> string</code></dt><dt class="spec value" id="val-sub"><a href="#val-sub" class="anchor"></a><code><span class="keyword">val</span> sub : string <span>-></span> pos:int <span>-></span> len:int <span>-></span> string</code></dt><dt class="spec value" id="val-fill"><a href="#val-fill" class="anchor"></a><code><span class="keyword">val</span> fill : bytes <span>-></span> pos:int <span>-></span> len:int <span>-></span> char <span>-></span> unit</code></dt><dt class="spec value" id="val-blit"><a href="#val-blit" class="anchor"></a><code><span class="keyword">val</span> blit : src:string <span>-></span> src_pos:int <span>-></span> dst:bytes <span>-></span> dst_pos:int <span>-></span> len:int <span>-></span> unit</code></dt><dt class="spec value" id="val-concat"><a href="#val-concat" class="anchor"></a><code><span class="keyword">val</span> concat : sep:string <span>-></span> string list <span>-></span> string</code></dt><dt class="spec value" id="val-iter"><a href="#val-iter" class="anchor"></a><code><span class="keyword">val</span> iter : f:(char <span>-></span> unit) <span>-></span> string <span>-></span> unit</code></dt><dt class="spec value" id="val-iteri"><a href="#val-iteri" class="anchor"></a><code><span class="keyword">val</span> iteri : f:(int <span>-></span> char <span>-></span> unit) <span>-></span> string <span>-></span> unit</code></dt><dt class="spec value" id="val-map"><a href="#val-map" class="anchor"></a><code><span class="keyword">val</span> map : f:(char <span>-></span> char) <span>-></span> string <span>-></span> string</code></dt><dt class="spec value" id="val-mapi"><a href="#val-mapi" class="anchor"></a><code><span class="keyword">val</span> mapi : f:(int <span>-></span> char <span>-></span> char) <span>-></span> string <span>-></span> string</code></dt><dt class="spec value" id="val-trim"><a href="#val-trim" class="anchor"></a><code><span class="keyword">val</span> trim : string <span>-></span> string</code></dt><dt class="spec value" id="val-escaped"><a href="#val-escaped" class="anchor"></a><code><span class="keyword">val</span> escaped : string <span>-></span> string</code></dt><dt class="spec value" id="val-index"><a href="#val-index" class="anchor"></a><code><span class="keyword">val</span> index : string <span>-></span> char <span>-></span> int</code></dt><dt class="spec value" id="val-index_opt"><a href="#val-index_opt" class="anchor"></a><code><span class="keyword">val</span> index_opt : string <span>-></span> char <span>-></span> int option</code></dt><dt class="spec value" id="val-rindex"><a href="#val-rindex" class="anchor"></a><code><span class="keyword">val</span> rindex : string <span>-></span> char <span>-></span> int</code></dt><dt class="spec value" id="val-rindex_opt"><a href="#val-rindex_opt" class="anchor"></a><code><span class="keyword">val</span> rindex_opt : string <span>-></span> char <span>-></span> int option</code></dt><dt class="spec value" id="val-index_from"><a href="#val-index_from" class="anchor"></a><code><span class="keyword">val</span> index_from : string <span>-></span> int <span>-></span> char <span>-></span> int</code></dt><dt class="spec value" id="val-index_from_opt"><a href="#val-index_from_opt" class="anchor"></a><code><span class="keyword">val</span> index_from_opt : string <span>-></span> int <span>-></span> char <span>-></span> int option</code></dt><dt class="spec value" id="val-rindex_from"><a href="#val-rindex_from" class="anchor"></a><code><span class="keyword">val</span> rindex_from : string <span>-></span> int <span>-></span> char <span>-></span> int</code></dt><dt class="spec value" id="val-rindex_from_opt"><a href="#val-rindex_from_opt" class="anchor"></a><code><span class="keyword">val</span> rindex_from_opt : string <span>-></span> int <span>-></span> char <span>-></span> int option</code></dt><dt class="spec value" id="val-contains"><a href="#val-contains" class="anchor"></a><code><span class="keyword">val</span> contains : string <span>-></span> char <span>-></span> bool</code></dt><dt class="spec value" id="val-contains_from"><a href="#val-contains_from" class="anchor"></a><code><span class="keyword">val</span> contains_from : string <span>-></span> int <span>-></span> char <span>-></span> bool</code></dt><dt class="spec value" id="val-rcontains_from"><a href="#val-rcontains_from" class="anchor"></a><code><span class="keyword">val</span> rcontains_from : string <span>-></span> int <span>-></span> char <span>-></span> bool</code></dt><dt class="spec value" id="val-uppercase"><a href="#val-uppercase" class="anchor"></a><code><span class="keyword">val</span> uppercase : string <span>-></span> string</code></dt><dt class="spec value" id="val-lowercase"><a href="#val-lowercase" class="anchor"></a><code><span class="keyword">val</span> lowercase : string <span>-></span> string</code></dt><dt class="spec value" id="val-capitalize"><a href="#val-capitalize" class="anchor"></a><code><span class="keyword">val</span> capitalize : string <span>-></span> string</code></dt><dt class="spec value" id="val-uncapitalize"><a href="#val-uncapitalize" class="anchor"></a><code><span class="keyword">val</span> uncapitalize : string <span>-></span> string</code></dt><dt class="spec value" id="val-uppercase_ascii"><a href="#val-uppercase_ascii" class="anchor"></a><code><span class="keyword">val</span> uppercase_ascii : string <span>-></span> string</code></dt><dt class="spec value" id="val-lowercase_ascii"><a href="#val-lowercase_ascii" class="anchor"></a><code><span class="keyword">val</span> lowercase_ascii : string <span>-></span> string</code></dt><dt class="spec value" id="val-capitalize_ascii"><a href="#val-capitalize_ascii" class="anchor"></a><code><span class="keyword">val</span> capitalize_ascii : string <span>-></span> string</code></dt><dt class="spec value" id="val-uncapitalize_ascii"><a href="#val-uncapitalize_ascii" class="anchor"></a><code><span class="keyword">val</span> uncapitalize_ascii : string <span>-></span> string</code></dt></dl><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = string</code></dt></dl><dl><dt class="spec value" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span class="keyword">val</span> compare : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> int</code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> bool</code></dt><dt class="spec value" id="val-split_on_char"><a href="#val-split_on_char" class="anchor"></a><code><span class="keyword">val</span> split_on_char : sep:char <span>-></span> string <span>-></span> string list</code></dt><dt class="spec value" id="val-to_seq"><a href="#val-to_seq" class="anchor"></a><code><span class="keyword">val</span> to_seq : <a href="index.html#type-t">t</a> <span>-></span> char Stdlib.Seq.t</code></dt><dt class="spec value" id="val-to_seqi"><a href="#val-to_seqi" class="anchor"></a><code><span class="keyword">val</span> to_seqi : <a href="index.html#type-t">t</a> <span>-></span> (int * char) Stdlib.Seq.t</code></dt><dt class="spec value" id="val-of_seq"><a href="#val-of_seq" class="anchor"></a><code><span class="keyword">val</span> of_seq : char Stdlib.Seq.t <span>-></span> <a href="index.html#type-t">t</a></code></dt></dl><dl><dt class="spec external" id="val-unsafe_get"><a href="#val-unsafe_get" class="anchor"></a><code><span class="keyword">val</span> unsafe_get : string <span>-></span> int <span>-></span> char</code></dt><dt class="spec external" id="val-unsafe_set"><a href="#val-unsafe_set" class="anchor"></a><code><span class="keyword">val</span> unsafe_set : bytes <span>-></span> int <span>-></span> char <span>-></span> unit</code></dt><dt class="spec external" id="val-unsafe_blit"><a href="#val-unsafe_blit" class="anchor"></a><code><span class="keyword">val</span> unsafe_blit : src:string <span>-></span> src_pos:int <span>-></span> dst:bytes <span>-></span> dst_pos:int <span>-></span> len:int <span>-></span> unit</code></dt><dt class="spec external" id="val-unsafe_fill"><a href="#val-unsafe_fill" class="anchor"></a><code><span class="keyword">val</span> unsafe_fill : bytes <span>-></span> pos:int <span>-></span> len:int <span>-></span> char <span>-></span> unit</code></dt></dl></details></div></div></div><dl><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : string <span>-></span> string <span>-></span> bool</code></dt><dd><p>Equality function on strings.</p></dd></dl><dl><dt class="spec value" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span class="keyword">val</span> compare : string <span>-></span> string <span>-></span> int</code></dt><dt class="spec value" id="val-is_empty"><a href="#val-is_empty" class="anchor"></a><code><span class="keyword">val</span> is_empty : string <span>-></span> bool</code></dt><dd><p><code>is_empty s</code> returns <code>true</code> iff <code>s</code> is empty (i.e. its length is 0).</p><dl><dt>since</dt><dd>1.5</dd></dl></dd></dl><dl><dt class="spec value" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span class="keyword">val</span> hash : string <span>-></span> int</code></dt><dt class="spec value" id="val-init"><a href="#val-init" class="anchor"></a><code><span class="keyword">val</span> init : int <span>-></span> (int <span>-></span> char) <span>-></span> string</code></dt><dd><p>Like <code>Array.init</code>.</p><dl><dt>since</dt><dd>0.3.3</dd></dl></dd></dl><dl><dt class="spec value" id="val-rev"><a href="#val-rev" class="anchor"></a><code><span class="keyword">val</span> rev : string <span>-></span> string</code></dt><dd><p><code>rev s</code> returns the reverse of <code>s</code>.</p><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-pad"><a href="#val-pad" class="anchor"></a><code><span class="keyword">val</span> pad : ?⁠side:[ `Left | `Right ] <span>-></span> ?⁠c:char <span>-></span> int <span>-></span> string <span>-></span> string</code></dt><dd><p><code>pad n str</code> ensures that <code>str</code> is at least <code>n</code> bytes long, and pads it on the <code>side</code> with <code>c</code> if it's not the case.</p><dl><dt>parameter side</dt><dd><p>determines where padding occurs (default: <code>`Left</code>).</p></dd></dl><dl><dt>parameter c</dt><dd><p>the char used to pad (default: ' ').</p></dd></dl><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-of_char"><a href="#val-of_char" class="anchor"></a><code><span class="keyword">val</span> of_char : char <span>-></span> string</code></dt><dd><p><code>of_char 'a'</code> is <code>"a"</code>.</p><dl><dt>since</dt><dd>0.19</dd></dl></dd></dl><dl><dt class="spec value" id="val-of_gen"><a href="#val-of_gen" class="anchor"></a><code><span class="keyword">val</span> of_gen : char <a href="index.html#type-gen">gen</a> <span>-></span> string</code></dt><dd><p>Convert a <code>gen</code> of characters to a string.</p></dd></dl><dl><dt class="spec value" id="val-of_iter"><a href="#val-of_iter" class="anchor"></a><code><span class="keyword">val</span> of_iter : char <a href="index.html#type-iter">iter</a> <span>-></span> string</code></dt><dd><p>Convert a <code>iter</code> of characters to a string.</p><dl><dt>since</dt><dd>2.8</dd></dl></dd></dl><dl><dt class="spec value" id="val-of_std_seq"><a href="#val-of_std_seq" class="anchor"></a><code><span class="keyword">val</span> of_std_seq : char Stdlib.Seq.t <span>-></span> string</code></dt><dd><p>Convert a <code>sequence</code> of characters to a string.</p><dl><dt>since</dt><dd>2.8</dd></dl></dd></dl><dl><dt class="spec value" id="val-of_seq"><a href="#val-of_seq" class="anchor"></a><code><span class="keyword">val</span> of_seq : char <a href="index.html#type-sequence">sequence</a> <span>-></span> string</code></dt><dt class="spec value" id="val-of_klist"><a href="#val-of_klist" class="anchor"></a><code><span class="keyword">val</span> of_klist : char <a href="index.html#type-klist">klist</a> <span>-></span> string</code></dt><dt class="spec value" id="val-of_list"><a href="#val-of_list" class="anchor"></a><code><span class="keyword">val</span> of_list : char list <span>-></span> string</code></dt><dd><p>Convert a list of characters to a string.</p></dd></dl><dl><dt class="spec value" id="val-of_array"><a href="#val-of_array" class="anchor"></a><code><span class="keyword">val</span> of_array : char array <span>-></span> string</code></dt><dd><p>Convert an array of characters to a string.</p></dd></dl><dl><dt class="spec value" id="val-to_array"><a href="#val-to_array" class="anchor"></a><code><span class="keyword">val</span> to_array : string <span>-></span> char array</code></dt><dd><p>Return the array of characters contained in the string.</p></dd></dl><dl><dt class="spec value" id="val-find"><a href="#val-find" class="anchor"></a><code><span class="keyword">val</span> find : ?⁠start:int <span>-></span> sub:string <span>-></span> string <span>-></span> int</code></dt><dd><p>Find <code>sub</code> in string, returns its first index or <code>-1</code>.</p></dd></dl><dl><dt class="spec value" id="val-find_all"><a href="#val-find_all" class="anchor"></a><code><span class="keyword">val</span> find_all : ?⁠start:int <span>-></span> sub:string <span>-></span> string <span>-></span> int <a href="index.html#type-gen">gen</a></code></dt><dd><p><code>find_all ~sub s</code> finds all occurrences of <code>sub</code> in <code>s</code>, even overlapping instances.</p><dl><dt>parameter start</dt><dd><p>starting position in <code>s</code>.</p></dd></dl><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-find_all_l"><a href="#val-find_all_l" class="anchor"></a><code><span class="keyword">val</span> find_all_l : ?⁠start:int <span>-></span> sub:string <span>-></span> string <span>-></span> int list</code></dt><dd><p><code>find_all_l ~sub s</code> finds all occurrences of <code>sub</code> in <code>s</code> and returns them in a list.</p><dl><dt>parameter start</dt><dd><p>starting position in <code>s</code>.</p></dd></dl><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-mem"><a href="#val-mem" class="anchor"></a><code><span class="keyword">val</span> mem : ?⁠start:int <span>-></span> sub:string <span>-></span> string <span>-></span> bool</code></dt><dd><p><code>mem ~sub s</code> is <code>true</code> iff <code>sub</code> is a substring of <code>s</code>.</p><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-rfind"><a href="#val-rfind" class="anchor"></a><code><span class="keyword">val</span> rfind : sub:string <span>-></span> string <span>-></span> int</code></dt><dd><p>Find <code>sub</code> in string from the right, returns its first index or <code>-1</code>. Should only be used with very small <code>sub</code>.</p><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-replace"><a href="#val-replace" class="anchor"></a><code><span class="keyword">val</span> replace : ?⁠which:[ `Left | `Right | `All ] <span>-></span> sub:string <span>-></span> by:string <span>-></span> string <span>-></span> string</code></dt><dd><p><code>replace ~sub ~by s</code> replaces some occurrences of <code>sub</code> by <code>by</code> in <code>s</code>.</p><dl><dt>parameter which</dt><dd><p>decides whether the occurrences to replace are:</p><ul><li><code>`Left</code> first occurrence from the left (beginning).</li><li><code>`Right</code> first occurrence from the right (end).</li><li><code>`All</code> all occurrences (default).</li></ul></dd></dl><dl><dt>raises Invalid_argument</dt><dd><p>if <code>sub = ""</code>.</p></dd></dl><dl><dt>since</dt><dd>0.14</dd></dl></dd></dl><dl><dt class="spec value" id="val-is_sub"><a href="#val-is_sub" class="anchor"></a><code><span class="keyword">val</span> is_sub : sub:string <span>-></span> sub_pos:int <span>-></span> string <span>-></span> pos:int <span>-></span> sub_len:int <span>-></span> bool</code></dt><dd><p><code>is_sub ~sub i s j ~len</code> returns <code>true</code> iff the substring of <code>sub</code> starting at position <code>i</code> and of length <code>len</code> is a substring of <code>s</code> starting at position <code>j</code>.</p></dd></dl><dl><dt class="spec value" id="val-repeat"><a href="#val-repeat" class="anchor"></a><code><span class="keyword">val</span> repeat : string <span>-></span> int <span>-></span> string</code></dt><dd><p>The same string, repeated n times.</p></dd></dl><dl><dt class="spec value" id="val-prefix"><a href="#val-prefix" class="anchor"></a><code><span class="keyword">val</span> prefix : pre:string <span>-></span> string <span>-></span> bool</code></dt><dd><p><code>prefix ~pre s</code> returns <code>true</code> iff <code>pre</code> is a prefix of <code>s</code>.</p></dd></dl><dl><dt class="spec value" id="val-suffix"><a href="#val-suffix" class="anchor"></a><code><span class="keyword">val</span> suffix : suf:string <span>-></span> string <span>-></span> bool</code></dt><dd><p><code>suffix ~suf s</code> returns <code>true</code> iff <code>suf</code> is a suffix of <code>s</code>.</p><dl><dt>since</dt><dd>0.7</dd></dl></dd></dl><dl><dt class="spec value" id="val-chop_prefix"><a href="#val-chop_prefix" class="anchor"></a><code><span class="keyword">val</span> chop_prefix : pre:string <span>-></span> string <span>-></span> string option</code></dt><dd><p><code>chop_prefix ~pre s</code> removes <code>pre</code> from <code>s</code> if <code>pre</code> really is a prefix of <code>s</code>, returns <code>None</code> otherwise.</p><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-chop_suffix"><a href="#val-chop_suffix" class="anchor"></a><code><span class="keyword">val</span> chop_suffix : suf:string <span>-></span> string <span>-></span> string option</code></dt><dd><p><code>chop_suffix ~suf s</code> removes <code>suf</code> from <code>s</code> if <code>suf</code> really is a suffix of <code>s</code>, returns <code>None</code> otherwise.</p><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-take"><a href="#val-take" class="anchor"></a><code><span class="keyword">val</span> take : int <span>-></span> string <span>-></span> string</code></dt><dd><p><code>take n s</code> keeps only the <code>n</code> first chars of <code>s</code>.</p><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-drop"><a href="#val-drop" class="anchor"></a><code><span class="keyword">val</span> drop : int <span>-></span> string <span>-></span> string</code></dt><dd><p><code>drop n s</code> removes the <code>n</code> first chars of <code>s</code>.</p><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-take_drop"><a href="#val-take_drop" class="anchor"></a><code><span class="keyword">val</span> take_drop : int <span>-></span> string <span>-></span> string * string</code></dt><dd><p><code>take_drop n s = take n s, drop n s</code>.</p><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-lines"><a href="#val-lines" class="anchor"></a><code><span class="keyword">val</span> lines : string <span>-></span> string list</code></dt><dd><p><code>lines s</code> returns a list of the lines of <code>s</code> (splits along '\n').</p><dl><dt>since</dt><dd>0.10</dd></dl></dd></dl><dl><dt class="spec value" id="val-lines_gen"><a href="#val-lines_gen" class="anchor"></a><code><span class="keyword">val</span> lines_gen : string <span>-></span> string <a href="index.html#type-gen">gen</a></code></dt><dd><p><code>lines_gen s</code> returns a generator of the lines of <code>s</code> (splits along '\n').</p><dl><dt>since</dt><dd>0.10</dd></dl></dd></dl><dl><dt class="spec value" id="val-concat_gen"><a href="#val-concat_gen" class="anchor"></a><code><span class="keyword">val</span> concat_gen : sep:string <span>-></span> string <a href="index.html#type-gen">gen</a> <span>-></span> string</code></dt><dd><p><code>concat_gen ~sep g</code> concatenates all strings of <code>g</code>, separated with <code>sep</code>.</p><dl><dt>since</dt><dd>0.10</dd></dl></dd></dl><dl><dt class="spec value" id="val-unlines"><a href="#val-unlines" class="anchor"></a><code><span class="keyword">val</span> unlines : string list <span>-></span> string</code></dt><dd><p><code>unlines l</code> concatenates all strings of <code>l</code>, separated with '\n'.</p><dl><dt>since</dt><dd>0.10</dd></dl></dd></dl><dl><dt class="spec value" id="val-unlines_gen"><a href="#val-unlines_gen" class="anchor"></a><code><span class="keyword">val</span> unlines_gen : string <a href="index.html#type-gen">gen</a> <span>-></span> string</code></dt><dd><p><code>unlines_gen g</code> concatenates all strings of <code>g</code>, separated with '\n'.</p><dl><dt>since</dt><dd>0.10</dd></dl></dd></dl><dl><dt class="spec value" id="val-set"><a href="#val-set" class="anchor"></a><code><span class="keyword">val</span> set : string <span>-></span> int <span>-></span> char <span>-></span> string</code></dt><dd><p><code>set s i c</code> creates a new string which is a copy of <code>s</code>, except for index <code>i</code>, which becomes <code>c</code>.</p><dl><dt>raises Invalid_argument</dt><dd><p>if <code>i</code> is an invalid index.</p></dd></dl><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-iter"><a href="#val-iter" class="anchor"></a><code><span class="keyword">val</span> iter : f:(char <span>-></span> unit) <span>-></span> string <span>-></span> unit</code></dt><dd><p>Alias to <span class="xref-unresolved" title="unresolved reference to "String.iter""><code>String</code>.iter</span>.</p><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-iteri"><a href="#val-iteri" class="anchor"></a><code><span class="keyword">val</span> iteri : f:(int <span>-></span> char <span>-></span> unit) <span>-></span> string <span>-></span> unit</code></dt><dd><p>Iter on chars with their index.</p><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-map"><a href="#val-map" class="anchor"></a><code><span class="keyword">val</span> map : f:(char <span>-></span> char) <span>-></span> string <span>-></span> string</code></dt><dd><p>Map chars.</p><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-mapi"><a href="#val-mapi" class="anchor"></a><code><span class="keyword">val</span> mapi : f:(int <span>-></span> char <span>-></span> char) <span>-></span> string <span>-></span> string</code></dt><dd><p>Map chars with their index.</p><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-filter_map"><a href="#val-filter_map" class="anchor"></a><code><span class="keyword">val</span> filter_map : f:(char <span>-></span> char option) <span>-></span> string <span>-></span> string</code></dt><dd><p><code>filter_map f s</code> calls <code>(f a0) (f a1) ... (f an)</code> where <code>a0 ... an</code> are the characters of s. It returns the string of characters <code>ci</code> such as <code>f ai = Some ci</code> (when <code>f</code> returns <code>None</code>, the corresponding element of <code>s</code> is discarded).</p><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-filter"><a href="#val-filter" class="anchor"></a><code><span class="keyword">val</span> filter : f:(char <span>-></span> bool) <span>-></span> string <span>-></span> string</code></dt><dd><p><code>filter f s</code> discards characters not satisfying <code>f</code>.</p><dl><dt>since</dt><dd>0.17</dd></dl></dd></dl><dl><dt class="spec value" id="val-flat_map"><a href="#val-flat_map" class="anchor"></a><code><span class="keyword">val</span> flat_map : ?⁠sep:string <span>-></span> f:(char <span>-></span> string) <span>-></span> string <span>-></span> string</code></dt><dd><p>Map each chars to a string, then concatenates them all.</p><dl><dt>parameter sep</dt><dd><p>optional separator between each generated string.</p></dd></dl><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-for_all"><a href="#val-for_all" class="anchor"></a><code><span class="keyword">val</span> for_all : f:(char <span>-></span> bool) <span>-></span> string <span>-></span> bool</code></dt><dd><p>True for all chars?</p><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-exists"><a href="#val-exists" class="anchor"></a><code><span class="keyword">val</span> exists : f:(char <span>-></span> bool) <span>-></span> string <span>-></span> bool</code></dt><dd><p>True for some char?</p><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><div><div class="spec include"><div class="doc"><details open="open"><summary><span class="def"><code><span class="keyword">include</span> <a href="index.html#module-type-S">S</a> <span class="keyword">with</span> <span class="keyword">type</span> <a href="index.html#module-type-S">S</a>.t := string</code></span></summary><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code></dt></dl><dl><dt class="spec value" id="val-length"><a href="#val-length" class="anchor"></a><code><span class="keyword">val</span> length : <a href="index.html#type-t">t</a> <span>-></span> int</code></dt><dd><p>Return the length (number of characters) of the given string.</p></dd></dl><dl><dt class="spec value" id="val-blit"><a href="#val-blit" class="anchor"></a><code><span class="keyword">val</span> blit : src:<a href="index.html#type-t">t</a> <span>-></span> src_pos:int <span>-></span> dst:Stdlib.Bytes.t <span>-></span> dst_pos:int <span>-></span> len:int <span>-></span> unit</code></dt><dd><p>Like <span class="xref-unresolved" title="unresolved reference to "String.blit""><code>String</code>.blit</span>. Compatible with the <code>-safe-string</code> option.</p><dl><dt>raises Invalid_argument</dt><dd><p>if indices are not valid.</p></dd></dl></dd></dl><dl><dt class="spec value" id="val-fold"><a href="#val-fold" class="anchor"></a><code><span class="keyword">val</span> fold : f:(<span class="type-var">'a</span> <span>-></span> char <span>-></span> <span class="type-var">'a</span>) <span>-></span> init:<span class="type-var">'a</span> <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <span class="type-var">'a</span></code></dt><dd><p>Fold on chars by increasing index.</p><dl><dt>since</dt><dd>0.7</dd></dl></dd></dl><section><header><h3 id="conversions"><a href="#conversions" class="anchor"></a>Conversions</h3></header><dl><dt class="spec value" id="val-to_gen"><a href="#val-to_gen" class="anchor"></a><code><span class="keyword">val</span> to_gen : <a href="index.html#type-t">t</a> <span>-></span> char <a href="index.html#type-gen">gen</a></code></dt><dd><p>Return the <code>gen</code> of characters contained in the string.</p></dd></dl><dl><dt class="spec value" id="val-to_iter"><a href="#val-to_iter" class="anchor"></a><code><span class="keyword">val</span> to_iter : <a href="index.html#type-t">t</a> <span>-></span> char <a href="index.html#type-iter">iter</a></code></dt><dd><p>Return the <code>iter</code> of characters contained in the string.</p><dl><dt>since</dt><dd>2.8</dd></dl></dd></dl><dl><dt class="spec value" id="val-to_std_seq"><a href="#val-to_std_seq" class="anchor"></a><code><span class="keyword">val</span> to_std_seq : <a href="index.html#type-t">t</a> <span>-></span> char Stdlib.Seq.t</code></dt><dd><p><code>to_std_seq s</code> returns a <code>Seq.t</code> of the bytes in <code>s</code>.</p><dl><dt>since</dt><dd>2.8</dd></dl></dd></dl><dl><dt class="spec value" id="val-to_seq"><a href="#val-to_seq" class="anchor"></a><code><span class="keyword">val</span> to_seq : <a href="index.html#type-t">t</a> <span>-></span> char <a href="index.html#type-sequence">sequence</a></code></dt><dt class="spec value" id="val-to_klist"><a href="#val-to_klist" class="anchor"></a><code><span class="keyword">val</span> to_klist : <a href="index.html#type-t">t</a> <span>-></span> char <a href="index.html#type-klist">klist</a></code></dt><dt class="spec value" id="val-to_list"><a href="#val-to_list" class="anchor"></a><code><span class="keyword">val</span> to_list : <a href="index.html#type-t">t</a> <span>-></span> char list</code></dt><dd><p>Return the list of characters contained in the string.</p></dd></dl><dl><dt class="spec value" id="val-pp_buf"><a href="#val-pp_buf" class="anchor"></a><code><span class="keyword">val</span> pp_buf : Stdlib.Buffer.t <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dd><p>Renamed from <code>pp</code> since 2.0.</p></dd></dl><dl><dt class="spec value" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span class="keyword">val</span> pp : Stdlib.Format.formatter <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> unit</code></dt><dd><p>Print the string within quotes.</p><p>Renamed from <code>print</code> since 2.0.</p></dd></dl></section></details></div></div></div><dl><dt class="spec value" id="val-drop_while"><a href="#val-drop_while" class="anchor"></a><code><span class="keyword">val</span> drop_while : f:(char <span>-></span> bool) <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>drop_while f s</code> discards any characters starting from the left, up to the first character <code>c</code> not satisfying <code>f c</code>.</p><dl><dt>since</dt><dd>2.2</dd></dl></dd></dl><dl><dt class="spec value" id="val-rdrop_while"><a href="#val-rdrop_while" class="anchor"></a><code><span class="keyword">val</span> rdrop_while : f:(char <span>-></span> bool) <span>-></span> <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p><code>rdrop_while f s</code> discards any characters starting from the right, up to the first character <code>c</code> not satisfying <code>f c</code>.</p><dl><dt>since</dt><dd>2.2</dd></dl></dd></dl><dl><dt class="spec value" id="val-ltrim"><a href="#val-ltrim" class="anchor"></a><code><span class="keyword">val</span> ltrim : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p>Trim space on the left (see <span class="xref-unresolved" title="unresolved reference to "String.trim""><code>String</code>.trim</span> for more details).</p><dl><dt>since</dt><dd>1.2</dd></dl></dd></dl><dl><dt class="spec value" id="val-rtrim"><a href="#val-rtrim" class="anchor"></a><code><span class="keyword">val</span> rtrim : <a href="index.html#type-t">t</a> <span>-></span> <a href="index.html#type-t">t</a></code></dt><dd><p>Trim space on the right (see <span class="xref-unresolved" title="unresolved reference to "String.trim""><code>String</code>.trim</span> for more details).</p><dl><dt>since</dt><dd>1.2</dd></dl></dd></dl></section><section><header><h3 id="operations-on-2-strings"><a href="#operations-on-2-strings" class="anchor"></a>Operations on 2 strings</h3></header><dl><dt class="spec value" id="val-map2"><a href="#val-map2" class="anchor"></a><code><span class="keyword">val</span> map2 : f:(char <span>-></span> char <span>-></span> char) <span>-></span> string <span>-></span> string <span>-></span> string</code></dt><dd><p>Map pairs of chars.</p><dl><dt>raises Invalid_argument</dt><dd><p>if the strings have not the same length.</p></dd></dl><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-iter2"><a href="#val-iter2" class="anchor"></a><code><span class="keyword">val</span> iter2 : f:(char <span>-></span> char <span>-></span> unit) <span>-></span> string <span>-></span> string <span>-></span> unit</code></dt><dd><p>Iterate on pairs of chars.</p><dl><dt>raises Invalid_argument</dt><dd><p>if the strings have not the same length.</p></dd></dl><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-iteri2"><a href="#val-iteri2" class="anchor"></a><code><span class="keyword">val</span> iteri2 : f:(int <span>-></span> char <span>-></span> char <span>-></span> unit) <span>-></span> string <span>-></span> string <span>-></span> unit</code></dt><dd><p>Iterate on pairs of chars with their index.</p><dl><dt>raises Invalid_argument</dt><dd><p>if the strings have not the same length.</p></dd></dl><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-fold2"><a href="#val-fold2" class="anchor"></a><code><span class="keyword">val</span> fold2 : f:(<span class="type-var">'a</span> <span>-></span> char <span>-></span> char <span>-></span> <span class="type-var">'a</span>) <span>-></span> init:<span class="type-var">'a</span> <span>-></span> string <span>-></span> string <span>-></span> <span class="type-var">'a</span></code></dt><dd><p>Fold on pairs of chars.</p><dl><dt>raises Invalid_argument</dt><dd><p>if the strings have not the same length.</p></dd></dl><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-for_all2"><a href="#val-for_all2" class="anchor"></a><code><span class="keyword">val</span> for_all2 : f:(char <span>-></span> char <span>-></span> bool) <span>-></span> string <span>-></span> string <span>-></span> bool</code></dt><dd><p>All pairs of chars respect the predicate?</p><dl><dt>raises Invalid_argument</dt><dd><p>if the strings have not the same length.</p></dd></dl><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl><dl><dt class="spec value" id="val-exists2"><a href="#val-exists2" class="anchor"></a><code><span class="keyword">val</span> exists2 : f:(char <span>-></span> char <span>-></span> bool) <span>-></span> string <span>-></span> string <span>-></span> bool</code></dt><dd><p>Exists a pair of chars?</p><dl><dt>raises Invalid_argument</dt><dd><p>if the strings have not the same length.</p></dd></dl><dl><dt>since</dt><dd>0.12</dd></dl></dd></dl></section><section><header><h3 id="ascii-functions"><a href="#ascii-functions" class="anchor"></a>Ascii functions</h3><p>Those functions are deprecated in <code>String</code> since 4.03, so we provide a stable alias for them even in older versions.</p></header><dl><dt class="spec value" id="val-capitalize_ascii"><a href="#val-capitalize_ascii" class="anchor"></a><code><span class="keyword">val</span> capitalize_ascii : string <span>-></span> string</code></dt><dd><p>See <code>String</code>.</p><dl><dt>since</dt><dd>0.18</dd></dl></dd></dl><dl><dt class="spec value" id="val-uncapitalize_ascii"><a href="#val-uncapitalize_ascii" class="anchor"></a><code><span class="keyword">val</span> uncapitalize_ascii : string <span>-></span> string</code></dt><dd><p>See <code>String</code>.</p><dl><dt>since</dt><dd>0.18</dd></dl></dd></dl><dl><dt class="spec value" id="val-uppercase_ascii"><a href="#val-uppercase_ascii" class="anchor"></a><code><span class="keyword">val</span> uppercase_ascii : string <span>-></span> string</code></dt><dd><p>See <code>String</code>.</p><dl><dt>since</dt><dd>0.18</dd></dl></dd></dl><dl><dt class="spec value" id="val-lowercase_ascii"><a href="#val-lowercase_ascii" class="anchor"></a><code><span class="keyword">val</span> lowercase_ascii : string <span>-></span> string</code></dt><dd><p>See <code>String</code>.</p><dl><dt>since</dt><dd>0.18</dd></dl></dd></dl><dl><dt class="spec value" id="val-equal_caseless"><a href="#val-equal_caseless" class="anchor"></a><code><span class="keyword">val</span> equal_caseless : string <span>-></span> string <span>-></span> bool</code></dt><dd><p>Comparison without respect to <b>ascii</b> lowercase.</p><dl><dt>since</dt><dd>1.2</dd></dl></dd></dl></section><section><header><h3 id="finding"><a href="#finding" class="anchor"></a>Finding</h3><p>A relatively efficient algorithm for finding sub-strings.</p><dl><dt>since</dt><dd>1.0</dd></dl></header><div class="spec module" id="module-Find"><a href="#module-Find" class="anchor"></a><code><span class="keyword">module</span> <a href="Find/index.html">Find</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div></section><section><header><h3 id="splitting"><a href="#splitting" class="anchor"></a>Splitting</h3></header><div class="spec module" id="module-Split"><a href="#module-Split" class="anchor"></a><code><span class="keyword">module</span> <a href="Split/index.html">Split</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><dl><dt class="spec value" id="val-split_on_char"><a href="#val-split_on_char" class="anchor"></a><code><span class="keyword">val</span> split_on_char : by:char <span>-></span> string <span>-></span> string list</code></dt><dd><p>Split the string along the given char.</p><dl><dt>since</dt><dd>1.2</dd></dl></dd></dl><dl><dt class="spec value" id="val-split"><a href="#val-split" class="anchor"></a><code><span class="keyword">val</span> split : by:string <span>-></span> string <span>-></span> string list</code></dt><dd><p>Alias to <a href="Split/index.html#val-list_cpy"><code>Split.list_cpy</code></a>.</p><dl><dt>since</dt><dd>1.2</dd></dl></dd></dl></section><section><header><h3 id="utils"><a href="#utils" class="anchor"></a>Utils</h3></header><dl><dt class="spec value" id="val-compare_versions"><a href="#val-compare_versions" class="anchor"></a><code><span class="keyword">val</span> compare_versions : string <span>-></span> string <span>-></span> int</code></dt><dd><p><code>compare_versions a b</code> compares <i>version strings</i> <code> a</code> and <code>b</code>, considering that numbers are above text.</p><dl><dt>since</dt><dd>0.13</dd></dl></dd></dl><dl><dt class="spec value" id="val-compare_natural"><a href="#val-compare_natural" class="anchor"></a><code><span class="keyword">val</span> compare_natural : string <span>-></span> string <span>-></span> int</code></dt><dd><p>Natural Sort Order, comparing chunks of digits as natural numbers. https://en.wikipedia.org/wiki/Natural_sort_order</p><dl><dt>since</dt><dd>1.3</dd></dl></dd></dl><dl><dt class="spec value" id="val-edit_distance"><a href="#val-edit_distance" class="anchor"></a><code><span class="keyword">val</span> edit_distance : string <span>-></span> string <span>-></span> int</code></dt><dd><p>Edition distance between two strings. This satisfies the classical distance axioms: it is always positive, symmetric, and satisfies the formula <code>distance a b + distance b c >= distance a c</code>.</p></dd></dl></section><section><header><h3 id="slices"><a href="#slices" class="anchor"></a>Slices</h3><p>A contiguous part of a string</p></header><div class="spec module" id="module-Sub"><a href="#module-Sub" class="anchor"></a><code><span class="keyword">module</span> <a href="Sub/index.html">Sub</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div></section></div></body></html> |