mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 03:05:28 -05:00
7 lines
No EOL
75 KiB
HTML
7 lines
No EOL
75 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCString (containers.CCString)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.1.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../index.html">containers</a> » CCString</nav><header class="odoc-preamble"><h1>Module <code><span>CCString</span></code></h1><p>Basic String Utils</p></header><nav class="odoc-toc"><ul><li><a href="#conversions">Conversions</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="#infix-operators">Infix operators</a></li></ul></nav><div class="odoc-content"><div class="odoc-spec"><div class="spec type" id="type-iter" class="anchored"><a href="#type-iter" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a iter</span></span><span> = <span><span>( <span><span class="type-var">'a</span> <span class="arrow">-></span></span> unit )</span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Fast internal iterator.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec type" id="type-gen" class="anchored"><a href="#type-gen" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a gen</span></span><span> = <span>unit <span class="arrow">-></span></span> <span><span class="type-var">'a</span> option</span></span></code></div></div><div class="odoc-include"><div class="spec-doc"><p><a href="https://caml.inria.fr/pub/docs/manual-ocaml/libref/String.html">Documentation for the standard String module</a></p></div><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <span class="keyword">module</span> <span class="keyword">type</span> <span class="keyword">of</span> <span class="keyword">struct</span> <span class="keyword">include</span> <span class="xref-unresolved">Stdlib</span>.String <span class="keyword">end</span></span></code></summary><div class="odoc-spec"><div class="spec type" id="type-t" class="anchored"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-make" class="anchored"><a href="#val-make" class="anchor"></a><code><span><span class="keyword">val</span> make : <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-init" class="anchored"><a href="#val-init" class="anchor"></a><code><span><span class="keyword">val</span> init : <span>int <span class="arrow">-></span></span> <span><span>( <span>int <span class="arrow">-></span></span> char )</span> <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-empty" class="anchored"><a href="#val-empty" class="anchor"></a><code><span><span class="keyword">val</span> empty : string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-of_bytes" class="anchored"><a href="#val-of_bytes" class="anchor"></a><code><span><span class="keyword">val</span> of_bytes : <span>bytes <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-to_bytes" class="anchored"><a href="#val-to_bytes" class="anchor"></a><code><span><span class="keyword">val</span> to_bytes : <span>string <span class="arrow">-></span></span> bytes</span></code></div></div><div class="odoc-spec"><div class="spec value external" id="val-get" class="anchored"><a href="#val-get" class="anchor"></a><code><span><span class="keyword">val</span> get : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> char</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-concat" class="anchored"><a href="#val-concat" class="anchor"></a><code><span><span class="keyword">val</span> concat : <span>string <span class="arrow">-></span></span> <span><span>string list</span> <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-cat" class="anchored"><a href="#val-cat" class="anchor"></a><code><span><span class="keyword">val</span> cat : <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-equal" class="anchored"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-starts_with" class="anchored"><a href="#val-starts_with" class="anchor"></a><code><span><span class="keyword">val</span> starts_with : <span>prefix:string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-ends_with" class="anchored"><a href="#val-ends_with" class="anchor"></a><code><span><span class="keyword">val</span> ends_with : <span>suffix:string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-contains_from" class="anchored"><a href="#val-contains_from" class="anchor"></a><code><span><span class="keyword">val</span> contains_from : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-rcontains_from" class="anchored"><a href="#val-rcontains_from" class="anchor"></a><code><span><span class="keyword">val</span> rcontains_from : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-contains" class="anchored"><a href="#val-contains" class="anchor"></a><code><span><span class="keyword">val</span> contains : <span>string <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-sub" class="anchored"><a href="#val-sub" class="anchor"></a><code><span><span class="keyword">val</span> sub : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-map" class="anchored"><a href="#val-map" class="anchor"></a><code><span><span class="keyword">val</span> map : <span><span>( <span>char <span class="arrow">-></span></span> char )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-mapi" class="anchored"><a href="#val-mapi" class="anchor"></a><code><span><span class="keyword">val</span> mapi : <span><span>( <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> char )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-fold_left" class="anchored"><a href="#val-fold_left" class="anchor"></a><code><span><span class="keyword">val</span> fold_left : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> <span class="type-var">'a</span> )</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-fold_right" class="anchored"><a href="#val-fold_right" class="anchor"></a><code><span><span class="keyword">val</span> fold_right : <span><span>( <span>char <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'a</span> )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-trim" class="anchored"><a href="#val-trim" class="anchor"></a><code><span><span class="keyword">val</span> trim : <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-escaped" class="anchored"><a href="#val-escaped" class="anchor"></a><code><span><span class="keyword">val</span> escaped : <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-uppercase_ascii" class="anchored"><a href="#val-uppercase_ascii" class="anchor"></a><code><span><span class="keyword">val</span> uppercase_ascii : <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-lowercase_ascii" class="anchored"><a href="#val-lowercase_ascii" class="anchor"></a><code><span><span class="keyword">val</span> lowercase_ascii : <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-capitalize_ascii" class="anchored"><a href="#val-capitalize_ascii" class="anchor"></a><code><span><span class="keyword">val</span> capitalize_ascii : <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-uncapitalize_ascii" class="anchored"><a href="#val-uncapitalize_ascii" class="anchor"></a><code><span><span class="keyword">val</span> uncapitalize_ascii : <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-iteri" class="anchored"><a href="#val-iteri" class="anchor"></a><code><span><span class="keyword">val</span> iteri : <span><span>( <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> unit )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-index_from" class="anchored"><a href="#val-index_from" class="anchor"></a><code><span><span class="keyword">val</span> index_from : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-index_from_opt" class="anchored"><a href="#val-index_from_opt" class="anchor"></a><code><span><span class="keyword">val</span> index_from_opt : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> <span>int option</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-rindex_from" class="anchored"><a href="#val-rindex_from" class="anchor"></a><code><span><span class="keyword">val</span> rindex_from : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-rindex_from_opt" class="anchored"><a href="#val-rindex_from_opt" class="anchor"></a><code><span><span class="keyword">val</span> rindex_from_opt : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> <span>int option</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-index" class="anchored"><a href="#val-index" class="anchor"></a><code><span><span class="keyword">val</span> index : <span>string <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-index_opt" class="anchored"><a href="#val-index_opt" class="anchor"></a><code><span><span class="keyword">val</span> index_opt : <span>string <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> <span>int option</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-rindex" class="anchored"><a href="#val-rindex" class="anchor"></a><code><span><span class="keyword">val</span> rindex : <span>string <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-rindex_opt" class="anchored"><a href="#val-rindex_opt" class="anchor"></a><code><span><span class="keyword">val</span> rindex_opt : <span>string <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> <span>int option</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-to_seqi" class="anchored"><a href="#val-to_seqi" class="anchor"></a><code><span><span class="keyword">val</span> to_seqi : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span>(int * char)</span> <span class="xref-unresolved">Stdlib</span>.Seq.t</span></span></code></div></div><div class="odoc-spec"><div class="spec value external" id="val-create" class="anchored"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span>int <span class="arrow">-></span></span> bytes</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-copy" class="anchored"><a href="#val-copy" class="anchor"></a><code><span><span class="keyword">val</span> copy : <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-fill" class="anchored"><a href="#val-fill" class="anchor"></a><code><span><span class="keyword">val</span> fill : <span>bytes <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-uppercase" class="anchored"><a href="#val-uppercase" class="anchor"></a><code><span><span class="keyword">val</span> uppercase : <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-lowercase" class="anchored"><a href="#val-lowercase" class="anchor"></a><code><span><span class="keyword">val</span> lowercase : <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-capitalize" class="anchored"><a href="#val-capitalize" class="anchor"></a><code><span><span class="keyword">val</span> capitalize : <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-uncapitalize" class="anchored"><a href="#val-uncapitalize" class="anchor"></a><code><span><span class="keyword">val</span> uncapitalize : <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_uint8" class="anchored"><a href="#val-get_uint8" class="anchor"></a><code><span><span class="keyword">val</span> get_uint8 : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_int8" class="anchored"><a href="#val-get_int8" class="anchor"></a><code><span><span class="keyword">val</span> get_int8 : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_uint16_ne" class="anchored"><a href="#val-get_uint16_ne" class="anchor"></a><code><span><span class="keyword">val</span> get_uint16_ne : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_uint16_be" class="anchored"><a href="#val-get_uint16_be" class="anchor"></a><code><span><span class="keyword">val</span> get_uint16_be : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_uint16_le" class="anchored"><a href="#val-get_uint16_le" class="anchor"></a><code><span><span class="keyword">val</span> get_uint16_le : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_int16_ne" class="anchored"><a href="#val-get_int16_ne" class="anchor"></a><code><span><span class="keyword">val</span> get_int16_ne : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_int16_be" class="anchored"><a href="#val-get_int16_be" class="anchor"></a><code><span><span class="keyword">val</span> get_int16_be : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_int16_le" class="anchored"><a href="#val-get_int16_le" class="anchor"></a><code><span><span class="keyword">val</span> get_int16_le : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_int32_ne" class="anchored"><a href="#val-get_int32_ne" class="anchor"></a><code><span><span class="keyword">val</span> get_int32_ne : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int32</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_int32_be" class="anchored"><a href="#val-get_int32_be" class="anchor"></a><code><span><span class="keyword">val</span> get_int32_be : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int32</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_int32_le" class="anchored"><a href="#val-get_int32_le" class="anchor"></a><code><span><span class="keyword">val</span> get_int32_le : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int32</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_int64_ne" class="anchored"><a href="#val-get_int64_ne" class="anchor"></a><code><span><span class="keyword">val</span> get_int64_ne : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int64</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_int64_be" class="anchored"><a href="#val-get_int64_be" class="anchor"></a><code><span><span class="keyword">val</span> get_int64_be : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int64</span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-get_int64_le" class="anchored"><a href="#val-get_int64_le" class="anchor"></a><code><span><span class="keyword">val</span> get_int64_le : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int64</span></code></div></div><div class="odoc-spec"><div class="spec value external" id="val-unsafe_get" class="anchored"><a href="#val-unsafe_get" class="anchor"></a><code><span><span class="keyword">val</span> unsafe_get : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> char</span></code></div></div><div class="odoc-spec"><div class="spec value external" id="val-unsafe_set" class="anchored"><a href="#val-unsafe_set" class="anchor"></a><code><span><span class="keyword">val</span> unsafe_set : <span>bytes <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value external" id="val-unsafe_blit" class="anchored"><a href="#val-unsafe_blit" class="anchor"></a><code><span><span class="keyword">val</span> unsafe_blit : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>bytes <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value external" id="val-unsafe_fill" class="anchored"><a href="#val-unsafe_fill" class="anchor"></a><code><span><span class="keyword">val</span> unsafe_fill : <span>bytes <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> unit</span></code></div></div></details></div><div class="odoc-spec"><div class="spec value" id="val-length" class="anchored"><a href="#val-length" class="anchor"></a><code><span><span class="keyword">val</span> length : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>length s</code> returns the length (number of characters) of the given string <code>s</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-blit" class="anchored"><a href="#val-blit" class="anchor"></a><code><span><span class="keyword">val</span> blit : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span><span class="xref-unresolved">Stdlib</span>.Bytes.t <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>blit src src_pos dst dst_pos len</code> copies <code>len</code> characters from string <code>src</code> starting at character indice <code>src_pos</code>, to the Bytes sequence <code>dst</code> starting at character indice <code>dst_pos</code>. Like <code>String</code>.blit. Compatible with the <code>-safe-string</code> option.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if indices are not valid.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-fold" class="anchored"><a href="#val-fold" class="anchor"></a><code><span><span class="keyword">val</span> fold : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> <span class="type-var">'a</span> )</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>fold f init s</code> folds on chars by increasing index. Computes <code>f(… (f (f init s.[0]) s.[1]) …) s.[n-1]</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.7</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-foldi" class="anchored"><a href="#val-foldi" class="anchor"></a><code><span><span class="keyword">val</span> foldi : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> <span class="type-var">'a</span> )</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>foldi f init s</code> is just like <a href="#val-fold"><code>fold</code></a>, but it also passes in the index of each chars as second argument to the folded function <code>f</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.3</li></ul></div></div><h3 id="conversions"><a href="#conversions" class="anchor"></a>Conversions</h3><div class="odoc-spec"><div class="spec value" id="val-to_gen" class="anchored"><a href="#val-to_gen" class="anchor"></a><code><span><span class="keyword">val</span> to_gen : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>char <a href="#type-gen">gen</a></span></span></code></div><div class="spec-doc"><p><code>to_gen s</code> returns the <code>gen</code> of characters contained in the string <code>s</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-to_iter" class="anchored"><a href="#val-to_iter" class="anchor"></a><code><span><span class="keyword">val</span> to_iter : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>char <a href="#type-iter">iter</a></span></span></code></div><div class="spec-doc"><p><code>to_iter s</code> returns the <code>iter</code> of characters contained in the string <code>s</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-to_seq" class="anchored"><a href="#val-to_seq" class="anchor"></a><code><span><span class="keyword">val</span> to_seq : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>char <span class="xref-unresolved">Stdlib</span>.Seq.t</span></span></code></div><div class="spec-doc"><p><code>to_seq s</code> returns the <code>Seq.t</code> of characters contained in the string <code>s</code>. Renamed from <code>to std_seq</code> since 3.0.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-to_list" class="anchored"><a href="#val-to_list" class="anchor"></a><code><span><span class="keyword">val</span> to_list : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>char list</span></span></code></div><div class="spec-doc"><p><code>to_list s</code> returns the <code>list</code> of characters contained in the string <code>s</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-pp_buf" class="anchored"><a href="#val-pp_buf" class="anchor"></a><code><span><span class="keyword">val</span> pp_buf : <span><span class="xref-unresolved">Stdlib</span>.Buffer.t <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>pp_buf buf s</code> prints <code>s</code> to the buffer <code>buf</code>. Renamed from <code>pp</code> since 2.0.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-pp" class="anchored"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><span class="xref-unresolved">Stdlib</span>.Format.formatter <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>pp f s</code> prints the string <code>s</code> within quotes to the formatter <code>f</code>. Renamed from <code>print</code> since 2.0.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-compare" class="anchored"><a href="#val-compare" class="anchor"></a><code><span><span class="keyword">val</span> compare : <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>compare s1 s2</code> compares the strings <code>s1</code> and <code>s2</code> and returns an integer that indicates their relative position in the sort order.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-is_empty" class="anchored"><a href="#val-is_empty" class="anchor"></a><code><span><span class="keyword">val</span> is_empty : <span>string <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_empty s</code> returns <code>true</code> iff <code>s</code> is empty (i.e. its length is 0).</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.5</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-hash" class="anchored"><a href="#val-hash" class="anchor"></a><code><span><span class="keyword">val</span> hash : <span>string <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>hash s</code> returns the hash value of <code>s</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-rev" class="anchored"><a href="#val-rev" class="anchor"></a><code><span><span class="keyword">val</span> rev : <span>string <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>rev s</code> returns the reverse of <code>s</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-pad" class="anchored"><a href="#val-pad" class="anchor"></a><code><span><span class="keyword">val</span> pad : <span>?side:<span>[ `Left <span>| `Right</span> ]</span> <span class="arrow">-></span></span> <span>?c:char <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>pad ~side ~c n s</code> ensures that the string <code>s</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><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">side</span> <p>determines where padding occurs (default: <code>`Left</code>).</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">c</span> <p>the char used to pad (default: ' ').</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-of_char" class="anchored"><a href="#val-of_char" class="anchor"></a><code><span><span class="keyword">val</span> of_char : <span>char <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>of_char 'a'</code> is <code>"a"</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.19</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-of_gen" class="anchored"><a href="#val-of_gen" class="anchor"></a><code><span><span class="keyword">val</span> of_gen : <span><span>char <a href="#type-gen">gen</a></span> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>of_gen gen</code> converts a <code>gen</code> of characters to a string.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-of_iter" class="anchored"><a href="#val-of_iter" class="anchor"></a><code><span><span class="keyword">val</span> of_iter : <span><span>char <a href="#type-iter">iter</a></span> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>of_iter iter</code> converts an <code>iter</code> of characters to a string.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.8</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-of_seq" class="anchored"><a href="#val-of_seq" class="anchor"></a><code><span><span class="keyword">val</span> of_seq : <span><span>char <span class="xref-unresolved">Stdlib</span>.Seq.t</span> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>of_seq seq</code> converts a <code>seq</code> of characters to a string. Renamed from <code>of_std_seq</code> since 3.0.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-of_list" class="anchored"><a href="#val-of_list" class="anchor"></a><code><span><span class="keyword">val</span> of_list : <span><span>char list</span> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>of_list lc</code> converts a list of characters <code>lc</code> to a string.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-of_array" class="anchored"><a href="#val-of_array" class="anchor"></a><code><span><span class="keyword">val</span> of_array : <span><span>char array</span> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>of_array ac</code> converts an array of characters <code>ac</code> to a string.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-to_array" class="anchored"><a href="#val-to_array" class="anchor"></a><code><span><span class="keyword">val</span> to_array : <span>string <span class="arrow">-></span></span> <span>char array</span></span></code></div><div class="spec-doc"><p><code>to_array s</code> returns the array of characters contained in the string <code>s</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-find" class="anchored"><a href="#val-find" class="anchor"></a><code><span><span class="keyword">val</span> find : <span>?start:int <span class="arrow">-></span></span> <span>sub:string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>find ~start ~sub s</code> returns the starting index of the first occurrence of <code>sub</code> within <code>s</code> or <code>-1</code>.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">start</span> <p>starting position in <code>s</code>.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-find_all" class="anchored"><a href="#val-find_all" class="anchor"></a><code><span><span class="keyword">val</span> find_all : <span>?start:int <span class="arrow">-></span></span> <span>sub:string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>int <a href="#type-gen">gen</a></span></span></code></div><div class="spec-doc"><p><code>find_all ~start ~sub s</code> finds all occurrences of <code>sub</code> in <code>s</code>, even overlapping instances and returns them in a generator <code>gen</code>.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">start</span> <p>starting position in <code>s</code>.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-find_all_l" class="anchored"><a href="#val-find_all_l" class="anchor"></a><code><span><span class="keyword">val</span> find_all_l : <span>?start:int <span class="arrow">-></span></span> <span>sub:string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>int list</span></span></code></div><div class="spec-doc"><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><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">start</span> <p>starting position in <code>s</code>.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-mem" class="anchored"><a href="#val-mem" class="anchor"></a><code><span><span class="keyword">val</span> mem : <span>?start:int <span class="arrow">-></span></span> <span>sub:string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>mem ~start ~sub s</code> is <code>true</code> iff <code>sub</code> is a substring of <code>s</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-rfind" class="anchored"><a href="#val-rfind" class="anchor"></a><code><span><span class="keyword">val</span> rfind : <span>sub:string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>rfind ~sub s</code> finds <code>sub</code> in string <code>s</code> from the right, returns its first index or <code>-1</code>. Should only be used with very small <code>sub</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-replace" class="anchored"><a href="#val-replace" class="anchor"></a><code><span><span class="keyword">val</span> replace :
|
||
<span>?which:<span>[ `Left <span>| `Right</span> <span>| `All</span> ]</span> <span class="arrow">-></span></span>
|
||
<span>sub:string <span class="arrow">-></span></span>
|
||
<span>by:string <span class="arrow">-></span></span>
|
||
<span>string <span class="arrow">-></span></span>
|
||
string</span></code></div><div class="spec-doc"><p><code>replace ~which ~sub ~by s</code> replaces some occurrences of <code>sub</code> by <code>by</code> in <code>s</code>.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">which</span> <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></li></ul><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if <code>sub = ""</code>.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.14</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-is_sub" class="anchored"><a href="#val-is_sub" class="anchor"></a><code><span><span class="keyword">val</span> is_sub : <span>sub:string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>sub_len:int <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_sub ~sub ~sub_pos s ~pos ~sub_len</code> returns <code>true</code> iff the substring of <code>sub</code> starting at position <code>sub_pos</code> and of length <code>sub_len</code> is a substring of <code>s</code> starting at position <code>pos</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-repeat" class="anchored"><a href="#val-repeat" class="anchor"></a><code><span><span class="keyword">val</span> repeat : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>repeat s n</code> creates a string by repeating the string <code>s</code> <code>n</code> times.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-prefix" class="anchored"><a href="#val-prefix" class="anchor"></a><code><span><span class="keyword">val</span> prefix : <span>pre:string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>prefix ~pre s</code> returns <code>true</code> iff <code>pre</code> is a prefix of <code>s</code>.</p></div></div><div class="odoc-spec"><div class="spec value" id="val-suffix" class="anchored"><a href="#val-suffix" class="anchor"></a><code><span><span class="keyword">val</span> suffix : <span>suf:string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>suffix ~suf s</code> returns <code>true</code> iff <code>suf</code> is a suffix of <code>s</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.7</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-chop_prefix" class="anchored"><a href="#val-chop_prefix" class="anchor"></a><code><span><span class="keyword">val</span> chop_prefix : <span>pre:string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string option</span></span></code></div><div class="spec-doc"><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><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-chop_suffix" class="anchored"><a href="#val-chop_suffix" class="anchor"></a><code><span><span class="keyword">val</span> chop_suffix : <span>suf:string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string option</span></span></code></div><div class="spec-doc"><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><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-take" class="anchored"><a href="#val-take" class="anchor"></a><code><span><span class="keyword">val</span> take : <span>int <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>take n s</code> keeps only the <code>n</code> first chars of <code>s</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-drop" class="anchored"><a href="#val-drop" class="anchor"></a><code><span><span class="keyword">val</span> drop : <span>int <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>drop n s</code> removes the <code>n</code> first chars of <code>s</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-take_drop" class="anchored"><a href="#val-take_drop" class="anchor"></a><code><span><span class="keyword">val</span> take_drop : <span>int <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string * string</span></code></div><div class="spec-doc"><p><code>take_drop n s</code> is <code>take n s, drop n s</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-lines" class="anchored"><a href="#val-lines" class="anchor"></a><code><span><span class="keyword">val</span> lines : <span>string <span class="arrow">-></span></span> <span>string list</span></span></code></div><div class="spec-doc"><p><code>lines s</code> returns a list of the lines of <code>s</code> (splits along '\n').</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.10</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-lines_gen" class="anchored"><a href="#val-lines_gen" class="anchor"></a><code><span><span class="keyword">val</span> lines_gen : <span>string <span class="arrow">-></span></span> <span>string <a href="#type-gen">gen</a></span></span></code></div><div class="spec-doc"><p><code>lines_gen s</code> returns the <code>gen</code> of the lines of <code>s</code> (splits along '\n').</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.10</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-lines_iter" class="anchored"><a href="#val-lines_iter" class="anchor"></a><code><span><span class="keyword">val</span> lines_iter : <span>string <span class="arrow">-></span></span> <span>string <a href="#type-iter">iter</a></span></span></code></div><div class="spec-doc"><p><code>lines_iter s</code> returns the <code>iter</code> of the lines of <code>s</code> (splits along '\n').</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.2</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-lines_seq" class="anchored"><a href="#val-lines_seq" class="anchor"></a><code><span><span class="keyword">val</span> lines_seq : <span>string <span class="arrow">-></span></span> <span>string <span class="xref-unresolved">Stdlib</span>.Seq.t</span></span></code></div><div class="spec-doc"><p><code>lines_seq s</code> returns the <code>Seq.t</code> of the lines of <code>s</code> (splits along '\n').</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.2</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-concat_gen" class="anchored"><a href="#val-concat_gen" class="anchor"></a><code><span><span class="keyword">val</span> concat_gen : <span>sep:string <span class="arrow">-></span></span> <span><span>string <a href="#type-gen">gen</a></span> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>concat_gen ~sep gen</code> concatenates all strings of <code>gen</code>, separated with <code>sep</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.10</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-concat_seq" class="anchored"><a href="#val-concat_seq" class="anchor"></a><code><span><span class="keyword">val</span> concat_seq : <span>sep:string <span class="arrow">-></span></span> <span><span>string <span class="xref-unresolved">Stdlib</span>.Seq.t</span> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>concat_seq ~sep seq</code> concatenates all strings of <code>seq</code>, separated with <code>sep</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.2</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-concat_iter" class="anchored"><a href="#val-concat_iter" class="anchor"></a><code><span><span class="keyword">val</span> concat_iter : <span>sep:string <span class="arrow">-></span></span> <span><span>string <a href="#type-iter">iter</a></span> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>concat_iter ~sep iter</code> concatenates all strings of <code>iter</code>, separated with <code>sep</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.2</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-unlines" class="anchored"><a href="#val-unlines" class="anchor"></a><code><span><span class="keyword">val</span> unlines : <span><span>string list</span> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>unlines ls</code> concatenates all strings of <code>ls</code>, separated with '\n'.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.10</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-unlines_gen" class="anchored"><a href="#val-unlines_gen" class="anchor"></a><code><span><span class="keyword">val</span> unlines_gen : <span><span>string <a href="#type-gen">gen</a></span> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>unlines_gen gen</code> concatenates all strings of <code>gen</code>, separated with '\n'.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.10</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-unlines_iter" class="anchored"><a href="#val-unlines_iter" class="anchor"></a><code><span><span class="keyword">val</span> unlines_iter : <span><span>string <a href="#type-iter">iter</a></span> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>unlines_iter iter</code> concatenates all strings of <code>iter</code>, separated with '\n'.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.2</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-unlines_seq" class="anchored"><a href="#val-unlines_seq" class="anchor"></a><code><span><span class="keyword">val</span> unlines_seq : <span><span>string <span class="xref-unresolved">Stdlib</span>.Seq.t</span> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>unlines_seq seq</code> concatenates all strings of <code>seq</code>, separated with '\n'.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.2</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-set" class="anchored"><a href="#val-set" class="anchor"></a><code><span><span class="keyword">val</span> set : <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><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><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if <code>i</code> is an invalid index.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-iter" class="anchored"><a href="#val-iter" class="anchor"></a><code><span><span class="keyword">val</span> iter : <span><span>( <span>char <span class="arrow">-></span></span> unit )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>iter f s</code> applies function <code>f</code> on each character of <code>s</code>. Alias to <code>String</code>.iter.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-filter_map" class="anchored"><a href="#val-filter_map" class="anchor"></a><code><span><span class="keyword">val</span> filter_map : <span><span>( <span>char <span class="arrow">-></span></span> <span>char option</span> )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><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><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-filter" class="anchored"><a href="#val-filter" class="anchor"></a><code><span><span class="keyword">val</span> filter : <span><span>( <span>char <span class="arrow">-></span></span> bool )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>filter f s</code> discards characters of <code>s</code> not satisfying <code>f</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.17</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-uniq" class="anchored"><a href="#val-uniq" class="anchor"></a><code><span><span class="keyword">val</span> uniq : <span><span>( <span>char <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> bool )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>uniq eq s</code> remove consecutive duplicate characters in <code>s</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.4</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-flat_map" class="anchored"><a href="#val-flat_map" class="anchor"></a><code><span><span class="keyword">val</span> flat_map : <span>?sep:string <span class="arrow">-></span></span> <span><span>( <span>char <span class="arrow">-></span></span> string )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>flat_map ~sep f s</code> maps each chars of <code>s</code> to a string, then concatenates them all.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">sep</span> <p>optional separator between each generated string.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-for_all" class="anchored"><a href="#val-for_all" class="anchor"></a><code><span><span class="keyword">val</span> for_all : <span><span>( <span>char <span class="arrow">-></span></span> bool )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>for_all f s</code> is <code>true</code> iff all characters of <code>s</code> satisfy the predicate <code>f</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-exists" class="anchored"><a href="#val-exists" class="anchor"></a><code><span><span class="keyword">val</span> exists : <span><span>( <span>char <span class="arrow">-></span></span> bool )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>exists f s</code> is <code>true</code> iff some character of <code>s</code> satisfy the predicate <code>f</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-drop_while" class="anchored"><a href="#val-drop_while" class="anchor"></a><code><span><span class="keyword">val</span> drop_while : <span><span>( <span>char <span class="arrow">-></span></span> bool )</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>drop_while f s</code> discards any characters of <code>s</code> starting from the left, up to the first character <code>c</code> not satisfying <code>f c</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.2</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-rdrop_while" class="anchored"><a href="#val-rdrop_while" class="anchor"></a><code><span><span class="keyword">val</span> rdrop_while : <span><span>( <span>char <span class="arrow">-></span></span> bool )</span> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>rdrop_while f s</code> discards any characters of <code>s</code> starting from the right, up to the first character <code>c</code> not satisfying <code>f c</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.2</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-ltrim" class="anchored"><a href="#val-ltrim" class="anchor"></a><code><span><span class="keyword">val</span> ltrim : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>ltrim s</code> trims space on the left (see <code>String</code>.trim for more details).</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.2</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-rtrim" class="anchored"><a href="#val-rtrim" class="anchor"></a><code><span><span class="keyword">val</span> rtrim : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>rtrim s</code> trims space on the right (see <code>String</code>.trim for more details).</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.2</li></ul></div></div><h3 id="operations-on-2-strings"><a href="#operations-on-2-strings" class="anchor"></a>Operations on 2 strings</h3><div class="odoc-spec"><div class="spec value" id="val-map2" class="anchored"><a href="#val-map2" class="anchor"></a><code><span><span class="keyword">val</span> map2 : <span><span>( <span>char <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> char )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>map2 f s1 s2</code> maps pairs of chars.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if the strings have not the same length.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-iter2" class="anchored"><a href="#val-iter2" class="anchor"></a><code><span><span class="keyword">val</span> iter2 : <span><span>( <span>char <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> unit )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>iter2 f s1 s2</code> iterates on pairs of chars.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if the strings have not the same length.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-iteri2" class="anchored"><a href="#val-iteri2" class="anchor"></a><code><span><span class="keyword">val</span> iteri2 : <span><span>( <span>int <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> unit )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>iteri2 f s1 s2</code> iterates on pairs of chars with their index.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if the strings have not the same length.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-fold2" class="anchored"><a href="#val-fold2" class="anchor"></a><code><span><span class="keyword">val</span> fold2 : <span><span>( <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> <span class="type-var">'a</span> )</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>fold2 f init s1 s2</code> folds on pairs of chars.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if the strings have not the same length.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-for_all2" class="anchored"><a href="#val-for_all2" class="anchor"></a><code><span><span class="keyword">val</span> for_all2 : <span><span>( <span>char <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> bool )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>for_all2 f s1 s2</code> returns <code>true</code> iff all pairs of chars satisfy the predicate <code>f</code>.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if the strings have not the same length.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-exists2" class="anchored"><a href="#val-exists2" class="anchor"></a><code><span><span class="keyword">val</span> exists2 : <span><span>( <span>char <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> bool )</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>exists2 f s1 s2</code> returns <code>true</code> iff a pair of chars satisfy the predicate <code>f</code>.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if the strings have not the same length.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.12</li></ul></div></div><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><div class="odoc-spec"><div class="spec value" id="val-equal_caseless" class="anchored"><a href="#val-equal_caseless" class="anchor"></a><code><span><span class="keyword">val</span> equal_caseless : <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>equal_caseless s1 s2</code> compares <code>s1</code> and <code>s2</code> without respect to <b>ascii</b> lowercase.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.2</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-to_hex" class="anchored"><a href="#val-to_hex" class="anchor"></a><code><span><span class="keyword">val</span> to_hex : <span>string <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p>Convert a string with arbitrary content into a hexadecimal string.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> NEXT_RELEASE</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-of_hex" class="anchored"><a href="#val-of_hex" class="anchor"></a><code><span><span class="keyword">val</span> of_hex : <span>string <span class="arrow">-></span></span> <span>string option</span></span></code></div><div class="spec-doc"><p>Convert a string in hex into a string with arbitrary content.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> NEXT_RELEASE</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-of_hex_exn" class="anchored"><a href="#val-of_hex_exn" class="anchor"></a><code><span><span class="keyword">val</span> of_hex_exn : <span>string <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p>Same as <a href="#val-of_hex"><code>of_hex</code></a> but fails harder.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if the input is not valid hex.</p></li></ul><ul class="at-tags"><li class="since"><span class="at-tag">since</span> NEXT_RELEASE</li></ul></div></div><h3 id="finding"><a href="#finding" class="anchor"></a>Finding</h3><p>A relatively efficient algorithm for finding sub-strings.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.0</li></ul><div class="odoc-spec"><div class="spec module" id="module-Find" class="anchored"><a href="#module-Find" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Find/index.html">Find</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><h3 id="splitting"><a href="#splitting" class="anchor"></a>Splitting</h3><div class="odoc-spec"><div class="spec module" id="module-Split" class="anchored"><a href="#module-Split" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Split/index.html">Split</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec value" id="val-split_on_char" class="anchored"><a href="#val-split_on_char" class="anchor"></a><code><span><span class="keyword">val</span> split_on_char : <span>char <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string list</span></span></code></div><div class="spec-doc"><p><code>split_on_char by s</code> splits the string <code>s</code> along the given char <code>by</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.2</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-split" class="anchored"><a href="#val-split" class="anchor"></a><code><span><span class="keyword">val</span> split : <span>by:string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string list</span></span></code></div><div class="spec-doc"><p><code>split ~by s</code> splits the string <code>s</code> along the given string <code>by</code>. Alias to <a href="Split/index.html#val-list_cpy"><code>Split.list_cpy</code></a>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.2</li></ul></div></div><h3 id="utils"><a href="#utils" class="anchor"></a>Utils</h3><div class="odoc-spec"><div class="spec value" id="val-compare_versions" class="anchored"><a href="#val-compare_versions" class="anchor"></a><code><span><span class="keyword">val</span> compare_versions : <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>compare_versions s1 s2</code> compares <i>version strings</i> <code>s1</code> and <code>s2</code>, considering that numbers are above text.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.13</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-compare_natural" class="anchored"><a href="#val-compare_natural" class="anchor"></a><code><span><span class="keyword">val</span> compare_natural : <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>compare_natural s1 s2</code> is the Natural Sort Order, comparing chunks of digits as natural numbers. https://en.wikipedia.org/wiki/Natural_sort_order</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.3</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-edit_distance" class="anchored"><a href="#val-edit_distance" class="anchor"></a><code><span><span class="keyword">val</span> edit_distance : <span>?cutoff:int <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>edit_distance ~cutoff s1 s2</code> is the edition distance between the two strings <code>s1</code> and <code>s2</code>. This satisfies the classical distance axioms: it is always positive, symmetric, and satisfies the formula <code>distance s1 s2 + distance s2 s3 >= distance s1 s3</code>.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">cutoff</span> <p>if provided, it's a cap on the number of iterations. (since 3.0). This is useful if you just want to check whether the edit distance is less or equal than 2 without (use <code>edit_distance s1 s2 ~cutoff:3 <= 2</code>). <b>note</b> that contrary to what was previously documented here, the result can still be higher than <code>cutoff</code> if it's reached in <code><cutoff</code> iterations. However if the result is <code>< cutoff</code> then it is accurate.</p></li></ul></div></div><h3 id="infix-operators"><a href="#infix-operators" class="anchor"></a>Infix operators</h3><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul><div class="odoc-spec"><div class="spec module" id="module-Infix" class="anchored"><a href="#module-Infix" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Infix/index.html">Infix</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-include"><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <span class="keyword">module</span> <span class="keyword">type</span> <span class="keyword">of</span> <a href="Infix/index.html">Infix</a></span></code></summary><div class="odoc-spec"><div class="spec value" id="val-(=)" class="anchored"><a href="#val-(=)" class="anchor"></a><code><span><span class="keyword">val</span> (=) : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(<>)" class="anchored"><a href="#val-(<>)" class="anchor"></a><code><span><span class="keyword">val</span> (<>) : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(<)" class="anchored"><a href="#val-(<)" class="anchor"></a><code><span><span class="keyword">val</span> (<) : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(<=)" class="anchored"><a href="#val-(<=)" class="anchor"></a><code><span><span class="keyword">val</span> (<=) : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(>=)" class="anchored"><a href="#val-(>=)" class="anchor"></a><code><span><span class="keyword">val</span> (>=) : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div><div class="odoc-spec"><div class="spec value" id="val-(>)" class="anchored"><a href="#val-(>)" class="anchor"></a><code><span><span class="keyword">val</span> (>) : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 3.0</li></ul></div></div></details></div></div></body></html> |