mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 03:05:28 -05:00
82 lines
No EOL
110 KiB
HTML
82 lines
No EOL
110 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCListLabels (containers.CCListLabels)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> — <span class="package">package <a href="../index.html">containers</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">CCListLabels</span></h1></header><h2>Complements to list</h2><div class="spec type" id="type-sequence"><a href="#type-sequence" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a sequence</code><code><span class="keyword"> = </span>(<span class="type-var">'a</span> <span class="keyword">‑></span> unit) <span class="keyword">‑></span> unit</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-gen"><a href="#type-gen" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a gen</code><code><span class="keyword"> = </span>unit <span class="keyword">‑></span> <span class="type-var">'a</span> option</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-klist"><a href="#type-klist" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a klist</code><code><span class="keyword"> = </span>unit <span class="keyword">‑></span> [ `Nil | `Cons of <span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'a</span> <a href="index.html#type-klist">klist</a> ]</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-printer"><a href="#type-printer" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a printer</code><code><span class="keyword"> = </span>Format.formatter <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> unit</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-random_gen"><a href="#type-random_gen" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a random_gen</code><code><span class="keyword"> = </span>Random.State.t <span class="keyword">‑></span> <span class="type-var">'a</span></code><code></code></div><div class="doc"></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">module type of </span>ListLabels</code></span></summary><div class="spec val" id="val-length"><a href="#val-length" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>length : <span class="type-var">'a</span> list <span class="keyword">‑></span> int</code></div><div class="doc"></div></div><div class="spec val" id="val-hd"><a href="#val-hd" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>hd : <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span></code></div><div class="doc"></div></div><div class="spec val" id="val-compare_lengths"><a href="#val-compare_lengths" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_lengths : <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> int</code></div><div class="doc"></div></div><div class="spec val" id="val-compare_length_with"><a href="#val-compare_length_with" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_length_with : <span class="type-var">'a</span> list <span class="keyword">‑></span> len:int <span class="keyword">‑></span> int</code></div><div class="doc"></div></div><div class="spec val" id="val-cons"><a href="#val-cons" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>cons : <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-tl"><a href="#val-tl" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>tl : <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-nth"><a href="#val-nth" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>nth : <span class="type-var">'a</span> list <span class="keyword">‑></span> int <span class="keyword">‑></span> <span class="type-var">'a</span></code></div><div class="doc"></div></div><div class="spec val" id="val-nth_opt"><a href="#val-nth_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>nth_opt : <span class="type-var">'a</span> list <span class="keyword">‑></span> int <span class="keyword">‑></span> <span class="type-var">'a</span> option</code></div><div class="doc"></div></div><div class="spec val" id="val-rev"><a href="#val-rev" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>rev : <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-init"><a href="#val-init" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>init : len:int <span class="keyword">‑></span> f:(int <span class="keyword">‑></span> <span class="type-var">'a</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-append"><a href="#val-append" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>append : <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-rev_append"><a href="#val-rev_append" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>rev_append : <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-concat"><a href="#val-concat" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>concat : <span class="type-var">'a</span> list list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-flatten"><a href="#val-flatten" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>flatten : <span class="type-var">'a</span> list list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-iter"><a href="#val-iter" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>iter : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> unit) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-iteri"><a href="#val-iteri" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>iteri : f:(int <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> unit) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-map"><a href="#val-map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-mapi"><a href="#val-mapi" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mapi : f:(int <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-rev_map"><a href="#val-rev_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>rev_map : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-fold_left"><a href="#val-fold_left" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_left : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'a</span>) <span class="keyword">‑></span> init:<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> <span class="type-var">'a</span></code></div><div class="doc"></div></div><div class="spec val" id="val-fold_right"><a href="#val-fold_right" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_right : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> init:<span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'b</span></code></div><div class="doc"></div></div><div class="spec val" id="val-iter2"><a href="#val-iter2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>iter2 : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> unit) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-map2"><a href="#val-map2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map2 : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'c</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> <span class="type-var">'c</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-rev_map2"><a href="#val-rev_map2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>rev_map2 : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'c</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> <span class="type-var">'c</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-fold_left2"><a href="#val-fold_left2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_left2 : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'c</span> <span class="keyword">‑></span> <span class="type-var">'a</span>) <span class="keyword">‑></span> init:<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> <span class="type-var">'c</span> list <span class="keyword">‑></span> <span class="type-var">'a</span></code></div><div class="doc"></div></div><div class="spec val" id="val-fold_right2"><a href="#val-fold_right2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_right2 : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'c</span> <span class="keyword">‑></span> <span class="type-var">'c</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> init:<span class="type-var">'c</span> <span class="keyword">‑></span> <span class="type-var">'c</span></code></div><div class="doc"></div></div><div class="spec val" id="val-for_all"><a href="#val-for_all" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>for_all : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-exists"><a href="#val-exists" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>exists : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-for_all2"><a href="#val-for_all2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>for_all2 : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-exists2"><a href="#val-exists2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>exists2 : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-mem"><a href="#val-mem" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mem : <span class="type-var">'a</span> <span class="keyword">‑></span> set:<span class="type-var">'a</span> list <span class="keyword">‑></span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-memq"><a href="#val-memq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>memq : <span class="type-var">'a</span> <span class="keyword">‑></span> set:<span class="type-var">'a</span> list <span class="keyword">‑></span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-find"><a href="#val-find" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span></code></div><div class="doc"></div></div><div class="spec val" id="val-find_opt"><a href="#val-find_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_opt : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> option</code></div><div class="doc"></div></div><div class="spec val" id="val-filter"><a href="#val-filter" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filter : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-find_all"><a href="#val-find_all" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_all : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-partition"><a href="#val-partition" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>partition : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list<span class="keyword"> * </span><span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-assoc"><a href="#val-assoc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assoc : <span class="type-var">'a</span> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">‑></span> <span class="type-var">'b</span></code></div><div class="doc"></div></div><div class="spec val" id="val-assoc_opt"><a href="#val-assoc_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assoc_opt : <span class="type-var">'a</span> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">‑></span> <span class="type-var">'b</span> option</code></div><div class="doc"></div></div><div class="spec val" id="val-assq"><a href="#val-assq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assq : <span class="type-var">'a</span> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">‑></span> <span class="type-var">'b</span></code></div><div class="doc"></div></div><div class="spec val" id="val-assq_opt"><a href="#val-assq_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assq_opt : <span class="type-var">'a</span> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">‑></span> <span class="type-var">'b</span> option</code></div><div class="doc"></div></div><div class="spec val" id="val-mem_assoc"><a href="#val-mem_assoc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mem_assoc : <span class="type-var">'a</span> <span class="keyword">‑></span> map:(<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">‑></span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-mem_assq"><a href="#val-mem_assq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mem_assq : <span class="type-var">'a</span> <span class="keyword">‑></span> map:(<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">‑></span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-remove_assoc"><a href="#val-remove_assoc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_assoc : <span class="type-var">'a</span> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list</code></div><div class="doc"></div></div><div class="spec val" id="val-remove_assq"><a href="#val-remove_assq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_assq : <span class="type-var">'a</span> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list</code></div><div class="doc"></div></div><div class="spec val" id="val-split"><a href="#val-split" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>split : (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list <span class="keyword">‑></span> <span class="type-var">'a</span> list<span class="keyword"> * </span><span class="type-var">'b</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-combine"><a href="#val-combine" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>combine : <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list</code></div><div class="doc"></div></div><div class="spec val" id="val-sort"><a href="#val-sort" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sort : cmp:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-stable_sort"><a href="#val-stable_sort" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>stable_sort : cmp:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-fast_sort"><a href="#val-fast_sort" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fast_sort : cmp:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-sort_uniq"><a href="#val-sort_uniq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sort_uniq : cmp:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div><div class="spec val" id="val-merge"><a href="#val-merge" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>merge : cmp:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"></div></div></details></div><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a t</code><code><span class="keyword"> = </span><span class="type-var">'a</span> list</code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-empty"><a href="#val-empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>empty : <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">empty</code> is <code class="code">[]</code>.</p></div></div><div class="spec val" id="val-is_empty"><a href="#val-is_empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_empty : <span class="type-var">_</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> bool</code></div><div class="doc"><p><code class="code">is_empty l</code> returns <code class="code">true</code> iff <code class="code">l = []</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-map"><a href="#val-map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Safe version of <span class="xref-unresolved" title="unresolved reference to "List.map"">List.map</span>.</p></div></div><div class="spec val" id="val-(>|=)"><a href="#val-(>|=)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(>|=) : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Infix version of <code class="code">map</code> with reversed arguments.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.5</li></ul></div></div><div class="spec val" id="val-cons"><a href="#val-cons" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>cons : <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">cons x l</code> is <code class="code">x::l</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.12</li></ul></div></div><div class="spec val" id="val-append"><a href="#val-append" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>append : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Safe version of <span class="xref-unresolved" title="unresolved reference to "List.append"">List.append</span>.
|
||
Concatenate two lists.</p></div></div><div class="spec val" id="val-cons_maybe"><a href="#val-cons_maybe" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>cons_maybe : <span class="type-var">'a</span> option <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">cons_maybe (Some x) l</code> is <code class="code">x :: l</code>.
|
||
<code class="code">cons_maybe None l</code> is <code class="code">l</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.13</li></ul></div></div><div class="spec val" id="val-(@)"><a href="#val-(@)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(@) : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Like <code class="code">append</code>.
|
||
Concatenate two lists.</p></div></div><div class="spec val" id="val-filter"><a href="#val-filter" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filter : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Safe version of <span class="xref-unresolved" title="unresolved reference to "List.filter"">List.filter</span>.
|
||
<code class="code">filter p l</code> returns all the elements of the list <code class="code">l</code>
|
||
that satisfy the predicate <code class="code">p</code>. The order of the elements
|
||
in the input list is preserved.</p></div></div><div class="spec val" id="val-fold_right"><a href="#val-fold_right" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_right : (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'b</span></code></div><div class="doc"><p>Safe version of <code class="code">fold_right</code>.
|
||
<code class="code">fold_right f [a1; ...; an] b</code> is
|
||
<code class="code">f a1 (f a2 (... (f an b) ...))</code>. Not tail-recursive.</p></div></div><div class="spec val" id="val-fold_while"><a href="#val-fold_while" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_while : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'a</span><span class="keyword"> * </span>[ `Stop | `Continue ]) <span class="keyword">‑></span> init:<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span></code></div><div class="doc"><p>Fold until a stop condition via <code class="code">('a, `Stop)</code> is
|
||
indicated by the accumulator.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.8</li></ul></div></div><div class="spec val" id="val-fold_map"><a href="#val-fold_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_map : f:(<span class="type-var">'acc</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'b</span>) <span class="keyword">‑></span> init:<span class="type-var">'acc</span> <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'b</span> list</code></div><div class="doc"><p><code class="code">fold_map ~f ~init l</code> is a <code class="code">fold_left</code>-like function, but it also maps the
|
||
list to another list.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.14</li></ul></div></div><div class="spec val" id="val-scan_left"><a href="#val-scan_left" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>scan_left : f:(<span class="type-var">'acc</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'acc</span>) <span class="keyword">‑></span> init:<span class="type-var">'acc</span> <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'acc</span> list</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-fold_map2"><a href="#val-fold_map2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_map2 : f:(<span class="type-var">'acc</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'c</span>) <span class="keyword">‑></span> init:<span class="type-var">'acc</span> <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'c</span> list</code></div><div class="doc"><p><code class="code">fold_map2</code> is to <code class="code">fold_map</code> what <code class="code">List.map2</code> is to <code class="code">List.map</code>.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Invalid_argument</span>: if the lists do not have the same length.</li><li><span class="at-tag since">Since</span>: 0.16</li></ul></div></div><div class="spec val" id="val-fold_filter_map"><a href="#val-fold_filter_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_filter_map : f:(<span class="type-var">'acc</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'b</span> option) <span class="keyword">‑></span> init:<span class="type-var">'acc</span> <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'b</span> list</code></div><div class="doc"><p><code class="code">fold_filter_map ~f ~init l</code> is a <code class="code">fold_left</code>-like function, but also
|
||
generates a list of output in a way similar to <a href="index.html#val-filter_map">filter_map</a>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.17</li></ul></div></div><div class="spec val" id="val-fold_flat_map"><a href="#val-fold_flat_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_flat_map : f:(<span class="type-var">'acc</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'b</span> list) <span class="keyword">‑></span> init:<span class="type-var">'acc</span> <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'acc</span><span class="keyword"> * </span><span class="type-var">'b</span> list</code></div><div class="doc"><p><code class="code">fold_flat_map f acc l</code> is a <code class="code">fold_left</code>-like function, but it also maps the
|
||
list to a list of lists that is then <code class="code">flatten</code>'d.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.14</li></ul></div></div><div class="spec val" id="val-count"><a href="#val-count" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>count : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> int</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-init"><a href="#val-init" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>init : int <span class="keyword">‑></span> f:(int <span class="keyword">‑></span> <span class="type-var">'a</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">init len ~f</code> is <code class="code">f 0; f 1; ...; f (len-1)</code>.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Invalid_argument</span>: if len < 0.</li><li><span class="at-tag since">Since</span>: 0.6</li></ul></div></div><div class="spec val" id="val-combine"><a href="#val-combine" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>combine : <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) list</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-combine_gen"><a href="#val-combine_gen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>combine_gen : <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-gen">gen</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-split"><a href="#val-split" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>split : (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a><span class="keyword"> * </span><span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-compare"><a href="#val-compare" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare : (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> int</code></div><div class="doc"></div></div><div class="spec val" id="val-compare_lengths"><a href="#val-compare_lengths" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_lengths : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> int</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-compare_length_with"><a href="#val-compare_length_with" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_length_with : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> int <span class="keyword">‑></span> int</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-flat_map"><a href="#val-flat_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>flat_map : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a>) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Map and flatten at the same time (safe). Evaluation order is not guaranteed.</p></div></div><div class="spec val" id="val-flatten"><a href="#val-flatten" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>flatten : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Safe flatten. Concatenate a list of lists.</p></div></div><div class="spec val" id="val-product"><a href="#val-product" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>product : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'c</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'c</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Cartesian product of the two lists, with the given combinator.</p></div></div><div class="spec val" id="val-fold_product"><a href="#val-fold_product" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_product : f:(<span class="type-var">'c</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'c</span>) <span class="keyword">‑></span> init:<span class="type-var">'c</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'c</span></code></div><div class="doc"><p>Fold on the cartesian product.</p></div></div><div class="spec val" id="val-cartesian_product"><a href="#val-cartesian_product" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>cartesian_product : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-t">t</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-map_product_l"><a href="#val-map_product_l" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>map_product_l : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> list) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list list</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-diagonal"><a href="#val-diagonal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>diagonal : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'a</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>All pairs of distinct positions of the list. <code class="code">list_diagonal l</code> will
|
||
return the list of <code class="code">List.nth i l, List.nth j l</code> if <code class="code">i < j</code>.</p></div></div><div class="spec val" id="val-partition_map"><a href="#val-partition_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>partition_map : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> [< `Left of <span class="type-var">'b</span> | `Right of <span class="type-var">'c</span> | `Drop ]) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list<span class="keyword"> * </span><span class="type-var">'c</span> list</code></div><div class="doc"><p><code class="code">partition_map ~f l</code> maps <code class="code">f</code> on <code class="code">l</code> and gather results in lists:
|
||
</p><ul><li>if <code class="code">f x = `Left y</code>, adds <code class="code">y</code> to the first list.</li><li>if <code class="code">f x = `Right z</code>, adds <code class="code">z</code> to the second list.</li><li>if <code class="code">f x = `Drop</code>, ignores <code class="code">x</code>.</li></ul><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-group_by"><a href="#val-group_by" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>group_by : ?⁠hash:(<span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> ?⁠eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> list <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Group equal elements, regardless of their order of appearance.
|
||
precondition: for any <code class="code">x</code> and <code class="code">y</code>, if <code class="code">eq x y</code> then <code class="code">hash x=hash y</code> must hold.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.3</li></ul></div></div><div class="spec val" id="val-join"><a href="#val-join" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>join : join_row:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'c</span> option) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'c</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">join ~join_row a b</code> combines every element of <code class="code">a</code> with every
|
||
element of <code class="code">b</code> using <code class="code">join_row</code>. If <code class="code">join_row</code> returns None, then
|
||
the two elements do not combine. Assume that <code class="code">b</code> allows for multiple
|
||
iterations.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.3</li></ul></div></div><div class="spec val" id="val-join_by"><a href="#val-join_by" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>join_by : ?⁠eq:(<span class="type-var">'key</span> <span class="keyword">‑></span> <span class="type-var">'key</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> ?⁠hash:(<span class="type-var">'key</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'key</span>) <span class="keyword">‑></span> (<span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'key</span>) <span class="keyword">‑></span> merge:(<span class="type-var">'key</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'c</span> option) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'c</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">join key1 key2 ~merge</code> is a binary operation
|
||
that takes two sequences <code class="code">a</code> and <code class="code">b</code>, projects their
|
||
elements resp. with <code class="code">key1</code> and <code class="code">key2</code>, and combine
|
||
values <code class="code">(x,y)</code> from <code class="code">(a,b)</code> with the same <code class="code">key</code>
|
||
using <code class="code">merge</code>. If <code class="code">merge</code> returns <code class="code">None</code>, the combination
|
||
of values is discarded.
|
||
precondition: for any <code class="code">x</code> and <code class="code">y</code>, if <code class="code">eq x y</code> then <code class="code">hash x=hash y</code> must hold.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.3</li></ul></div></div><div class="spec val" id="val-join_all_by"><a href="#val-join_all_by" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>join_all_by : ?⁠eq:(<span class="type-var">'key</span> <span class="keyword">‑></span> <span class="type-var">'key</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> ?⁠hash:(<span class="type-var">'key</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'key</span>) <span class="keyword">‑></span> (<span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'key</span>) <span class="keyword">‑></span> merge:(<span class="type-var">'key</span> <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'b</span> list <span class="keyword">‑></span> <span class="type-var">'c</span> option) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'c</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">join_all_by key1 key2 ~merge</code> is a binary operation
|
||
that takes two sequences <code class="code">a</code> and <code class="code">b</code>, projects their
|
||
elements resp. with <code class="code">key1</code> and <code class="code">key2</code>, and, for each key <code class="code">k</code>
|
||
occurring in at least one of them:
|
||
</p><ul><li>compute the list <code class="code">l1</code> of elements of <code class="code">a</code> that map to <code class="code">k</code></li><li>compute the list <code class="code">l2</code> of elements of <code class="code">b</code> that map to <code class="code">k</code></li><li>call <code class="code">merge k l1 l2</code>. If <code class="code">merge</code> returns <code class="code">None</code>, the combination
|
||
of values is discarded, otherwise it returns <code class="code">Some c</code>
|
||
and <code class="code">c</code> is inserted in the result.</li></ul><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.3</li></ul></div></div><div class="spec val" id="val-group_join_by"><a href="#val-group_join_by" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>group_join_by : ?⁠eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> ?⁠hash:(<span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> (<span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'a</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span> list) <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">group_join_by key2</code> associates to every element <code class="code">x</code> of
|
||
the first sequence, all the elements <code class="code">y</code> of the second
|
||
sequence such that <code class="code">eq x (key y)</code>. Elements of the first
|
||
sequences without corresponding values in the second one
|
||
are mapped to <code class="code">[]</code>
|
||
precondition: for any <code class="code">x</code> and <code class="code">y</code>, if <code class="code">eq x y</code> then <code class="code">hash x=hash y</code> must hold.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.3</li></ul></div></div><div class="spec val" id="val-sublists_of_len"><a href="#val-sublists_of_len" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sublists_of_len : ?⁠last:(<span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list option) <span class="keyword">‑></span> ?⁠offset:int <span class="keyword">‑></span> len:int <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list list</code></div><div class="doc"><p><code class="code">sublists_of_len n l</code> returns sub-lists of <code class="code">l</code> that have length <code class="code">n</code>.
|
||
By default, these sub-lists are non overlapping:
|
||
<code class="code">sublists_of_len 2 [1;2;3;4;5;6]</code> returns <code class="code">[1;2]; [3;4]; [5;6]</code>.</p><p>See <a href="../CCList/index.html#val-sublists_of_len">CCList.sublists_of_len</a> for more details.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 1.5</li></ul></div></div><div class="spec val" id="val-intersperse"><a href="#val-intersperse" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>intersperse : x:<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"><p>Insert the first argument between every element of the list.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-interleave"><a href="#val-interleave" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>interleave : <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"><p><code class="code">interleave [x1…xn] [y1…ym]</code> is <code class="code">x1,y1,x2,y2,…</code> and finishes with
|
||
the suffix of the longest list.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-pure"><a href="#val-pure" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pure : <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">pure</code> is <code class="code">return</code>.</p></div></div><div class="spec val" id="val-(<*>)"><a href="#val-(<*>)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(<*>) : (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">funs <*> l</code> is <code class="code">product fun f x -> f x) funs l</code>.</p></div></div><div class="spec val" id="val-(<$>)"><a href="#val-(<$>)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(<$>) : (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">(<$>)</code> is <code class="code">map</code>.</p></div></div><div class="spec val" id="val-return"><a href="#val-return" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>return : <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">return x</code> is <code class="code">x</code>.</p></div></div><div class="spec val" id="val-(>>=)"><a href="#val-(>>=)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(>>=) : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> (<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a>) <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">l >>= f</code> is <code class="code">flat_map f l</code>.</p></div></div><div class="spec val" id="val-take"><a href="#val-take" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>take : int <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Take the <code class="code">n</code> first elements, drop the rest.</p></div></div><div class="spec val" id="val-drop"><a href="#val-drop" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>drop : int <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Drop the <code class="code">n</code> first elements, keep the rest.</p></div></div><div class="spec val" id="val-hd_tl"><a href="#val-hd_tl" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>hd_tl : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">hd_tl (x :: l)</code> returns <code class="code">hd, l</code>.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Failure</span>: if the list is empty.</li><li><span class="at-tag since">Since</span>: 0.16</li></ul></div></div><div class="spec val" id="val-take_drop"><a href="#val-take_drop" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>take_drop : int <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a><span class="keyword"> * </span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">take_drop n l</code> returns <code class="code">l1, l2</code> such that <code class="code">l1 @ l2 = l</code> and
|
||
<code class="code">length l1 = min (length l) n</code>.</p></div></div><div class="spec val" id="val-take_while"><a href="#val-take_while" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>take_while : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">take_while ~f l</code> returns the longest prefix of <code class="code">l</code> for which <code class="code">f</code> is <code class="code">true</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.13</li></ul></div></div><div class="spec val" id="val-drop_while"><a href="#val-drop_while" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>drop_while : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">drop_while ~f l</code> drops the longest prefix of <code class="code">l</code> for which <code class="code">f</code> is <code class="code">true</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.13</li></ul></div></div><div class="spec val" id="val-take_drop_while"><a href="#val-take_drop_while" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>take_drop_while : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a><span class="keyword"> * </span><span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-last"><a href="#val-last" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>last : int <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">last n l</code> takes the last <code class="code">n</code> elements of <code class="code">l</code> (or less if
|
||
<code class="code">l</code> doesn't have that many elements).</p></div></div><div class="spec val" id="val-head_opt"><a href="#val-head_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>head_opt : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> option</code></div><div class="doc"><p>First element.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.20</li></ul></div></div><div class="spec val" id="val-tail_opt"><a href="#val-tail_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>tail_opt : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> option</code></div><div class="doc"><p>Return the given list without its first element.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><div class="spec val" id="val-last_opt"><a href="#val-last_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>last_opt : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> option</code></div><div class="doc"><p>Last element.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.20</li></ul></div></div><div class="spec val" id="val-find_pred"><a href="#val-find_pred" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_pred : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> option</code></div><div class="doc"><p><code class="code">find_pred p l</code> finds the first element of <code class="code">l</code> that satisfies <code class="code">p</code>,
|
||
or returns <code class="code">None</code> if no element satisfies <code class="code">p</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-find_opt"><a href="#val-find_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_opt : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> option</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-find_pred_exn"><a href="#val-find_pred_exn" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_pred_exn : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span></code></div><div class="doc"><p>Unsafe version of <a href="index.html#val-find_pred">find_pred</a>.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Not_found</span>: if no such element is found.</li><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-find_map"><a href="#val-find_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_map : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> option) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> option</code></div><div class="doc"><p><code class="code">find_map ~f l</code> traverses <code class="code">l</code>, applying <code class="code">f</code> to each element. If for
|
||
some element <code class="code">x</code>, <code class="code">f x = Some y</code>, then <code class="code">Some y</code> is returned. Otherwise
|
||
the call returns <code class="code">None</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-find_mapi"><a href="#val-find_mapi" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_mapi : f:(int <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> option) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> option</code></div><div class="doc"><p>Like <a href="index.html#val-find_map">find_map</a>, but also pass the index to the predicate function.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-find_idx"><a href="#val-find_idx" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>find_idx : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> (int<span class="keyword"> * </span><span class="type-var">'a</span>) option</code></div><div class="doc"><p><code class="code">find_idx p x</code> returns <code class="code">Some (i,x)</code> where <code class="code">x</code> is the <code class="code">i</code>-th element of <code class="code">l</code>,
|
||
and <code class="code">p x</code> holds. Otherwise returns <code class="code">None</code>.</p></div></div><div class="spec val" id="val-remove"><a href="#val-remove" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> key:<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">remove ~key l</code> removes every instance of <code class="code">key</code> from <code class="code">l</code>. Tail-recursive.</p><ul class="at-tag"><li><span class="at-tag parameter">Parameter</span> <span class="module-path">eq</span>: equality function.</li><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-filter_map"><a href="#val-filter_map" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filter_map : f:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> option) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">filter_map ~f l</code> is the sublist of <code class="code">l</code> containing only elements for which
|
||
<code class="code">f</code> returns <code class="code">Some e</code>.
|
||
Map and remove elements at the same time.</p></div></div><div class="spec val" id="val-keep_some"><a href="#val-keep_some" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>keep_some : <span class="type-var">'a</span> option <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-keep_ok"><a href="#val-keep_ok" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>keep_ok : (<span class="type-var">'a</span>, <span class="type-var">_</span>) Result.result <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-all_some"><a href="#val-all_some" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>all_some : <span class="type-var">'a</span> option <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> option</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-all_ok"><a href="#val-all_ok" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>all_ok : (<span class="type-var">'a</span>, <span class="type-var">'err</span>) Result.result <a href="index.html#type-t">t</a> <span class="keyword">‑></span> (<span class="type-var">'a</span> <a href="index.html#type-t">t</a>, <span class="type-var">'err</span>) Result.result</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-sorted_merge"><a href="#val-sorted_merge" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sorted_merge : cmp:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"><p>Merges elements from both sorted list.</p></div></div><div class="spec val" id="val-sort_uniq"><a href="#val-sort_uniq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sort_uniq : cmp:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"><p>Sort the list and remove duplicate elements.</p></div></div><div class="spec val" id="val-sorted_merge_uniq"><a href="#val-sorted_merge_uniq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sorted_merge_uniq : cmp:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"><p><code class="code">sorted_merge_uniq l1 l2</code> merges the sorted lists <code class="code">l1</code> and <code class="code">l2</code> and
|
||
removes duplicates.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.10</li></ul></div></div><div class="spec val" id="val-is_sorted"><a href="#val-is_sorted" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_sorted : cmp:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> bool</code></div><div class="doc"><p><code class="code">is_sorted l</code> returns <code class="code">true</code> iff <code class="code">l</code> is sorted (according to given order).</p><ul class="at-tag"><li><span class="at-tag parameter">Parameter</span> <span class="module-path">cmp</span>: the comparison function (default <code class="code">Pervasives.compare</code>).</li><li><span class="at-tag since">Since</span>: 0.17</li></ul></div></div><div class="spec val" id="val-sorted_insert"><a href="#val-sorted_insert" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>sorted_insert : cmp:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> int) <span class="keyword">‑></span> ?⁠uniq:bool <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"><p><code class="code">sorted_insert x l</code> inserts <code class="code">x</code> into <code class="code">l</code> such that, if <code class="code">l</code> was sorted,
|
||
then <code class="code">sorted_insert x l</code> is sorted too.</p><ul class="at-tag"><li><span class="at-tag parameter">Parameter</span> <span class="module-path">uniq</span>: if true and <code class="code">x</code> is already in sorted position in <code class="code">l</code>, then
|
||
<code class="code">x</code> is not duplicated. Default <code class="code">false</code> (<code class="code">x</code> will be inserted in any case).</li><li><span class="at-tag since">Since</span>: 0.17</li></ul></div></div><div class="spec val" id="val-uniq_succ"><a href="#val-uniq_succ" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>uniq_succ : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list</code></div><div class="doc"><p><code class="code">uniq_succ l</code> removes duplicate elements that occur one next to the other.
|
||
Examples:
|
||
<code class="code">uniq_succ [1;2;1] = [1;2;1]</code>.
|
||
<code class="code">uniq_succ [1;1;2] = [1;2]</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.10</li></ul></div></div><div class="spec val" id="val-group_succ"><a href="#val-group_succ" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>group_succ : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> list <span class="keyword">‑></span> <span class="type-var">'a</span> list list</code></div><div class="doc"><p><code class="code">group_succ ~eq l</code> groups together consecutive elements that are equal
|
||
according to <code class="code">eq</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><h3>Indices</h3><div class="spec val" id="val-mapi"><a href="#val-mapi" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mapi : f:(int <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Like <a href="index.html#val-map">map</a>, but the function is applied to the index of
|
||
the element as first argument (counting from 0), and the element
|
||
itself as second argument.</p></div></div><div class="spec val" id="val-iteri"><a href="#val-iteri" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>iteri : f:(int <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> unit) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> unit</code></div><div class="doc"><p>Like <a href="index.html#val-iter">iter</a>, but the function is applied to the index of
|
||
the element as first argument (counting from 0), and the element
|
||
itself as second argument.</p></div></div><div class="spec val" id="val-iteri2"><a href="#val-iteri2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>iteri2 : f:(int <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> unit) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> unit</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-foldi"><a href="#val-foldi" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>foldi : f:(<span class="type-var">'b</span> <span class="keyword">‑></span> int <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span>) <span class="keyword">‑></span> init:<span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span></code></div><div class="doc"><p>Like <code class="code">fold</code> but it also passes in the index of each element to the folded function. Tail-recursive.</p></div></div><div class="spec val" id="val-foldi2"><a href="#val-foldi2" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>foldi2 : f:(<span class="type-var">'c</span> <span class="keyword">‑></span> int <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'b</span> <span class="keyword">‑></span> <span class="type-var">'c</span>) <span class="keyword">‑></span> init:<span class="type-var">'c</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'c</span></code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-get_at_idx"><a href="#val-get_at_idx" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_at_idx : int <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> option</code></div><div class="doc"><p>Get by index in the list.
|
||
If the index is negative, it will get element starting from the end
|
||
of the list.</p></div></div><div class="spec val" id="val-nth_opt"><a href="#val-nth_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>nth_opt : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> int <span class="keyword">‑></span> <span class="type-var">'a</span> option</code></div><div class="doc"><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.2</li></ul></div></div><div class="spec val" id="val-get_at_idx_exn"><a href="#val-get_at_idx_exn" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_at_idx_exn : int <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span></code></div><div class="doc"><p>Get the i-th element, or</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Not_found</span>: if the index is invalid.
|
||
If the index is negative, it will get element starting from the end
|
||
of the list.</li></ul></div></div><div class="spec val" id="val-set_at_idx"><a href="#val-set_at_idx" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>set_at_idx : int <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Set i-th element (removes the old one), or does nothing if
|
||
index is too high.
|
||
If the index is negative, it will set element starting from the end
|
||
of the list.</p></div></div><div class="spec val" id="val-insert_at_idx"><a href="#val-insert_at_idx" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>insert_at_idx : int <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Insert at i-th position, between the two existing elements. If the
|
||
index is too high, append at the end of the list.
|
||
If the index is negative, it will insert element starting from the end
|
||
of the list.</p></div></div><div class="spec val" id="val-remove_at_idx"><a href="#val-remove_at_idx" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_at_idx : int <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Remove element at given index. Does nothing if the index is
|
||
too high.
|
||
If the index is negative, it will remove element starting from the end
|
||
of the list.</p></div></div><h3>Set Operators</h3><p>Those operations maintain the invariant that the list does not
|
||
contain duplicates (if it already satisfies it).</p><div class="spec val" id="val-add_nodup"><a href="#val-add_nodup" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_nodup : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">add_nodup x set</code> adds <code class="code">x</code> to <code class="code">set</code> if it was not already present. Linear time.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-remove_one"><a href="#val-remove_one" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_one : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">remove_one x set</code> removes one occurrence of <code class="code">x</code> from <code class="code">set</code>. Linear time.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.11</li></ul></div></div><div class="spec val" id="val-mem"><a href="#val-mem" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mem : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> bool</code></div><div class="doc"><p>Membership to the list. Linear time.</p></div></div><div class="spec val" id="val-subset"><a href="#val-subset" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>subset : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> bool</code></div><div class="doc"><p>Test for inclusion.</p></div></div><div class="spec val" id="val-uniq"><a href="#val-uniq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>uniq : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Remove duplicates w.r.t the equality predicate.
|
||
Complexity is quadratic in the length of the list, but the order
|
||
of elements is preserved. If you wish for a faster de-duplication
|
||
but do not care about the order, use <a href="index.html#val-sort_uniq">sort_uniq</a>.</p></div></div><div class="spec val" id="val-union"><a href="#val-union" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>union : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>List union. Complexity is product of length of inputs.</p></div></div><div class="spec val" id="val-inter"><a href="#val-inter" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>inter : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>List intersection. Complexity is product of length of inputs.</p></div></div><h3>Other Constructors</h3><div class="spec val" id="val-range_by"><a href="#val-range_by" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>range_by : step:int <span class="keyword">‑></span> int <span class="keyword">‑></span> int <span class="keyword">‑></span> int <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">range_by ~step i j</code> iterates on integers from <code class="code">i</code> to <code class="code">j</code> included,
|
||
where the difference between successive elements is <code class="code">step</code>.
|
||
use a negative <code class="code">step</code> for a decreasing list.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Invalid_argument</span>: if <code class="code">step=0</code>.</li><li><span class="at-tag since">Since</span>: 0.18</li></ul></div></div><div class="spec val" id="val-range"><a href="#val-range" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>range : int <span class="keyword">‑></span> int <span class="keyword">‑></span> int <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">range i j</code> iterates on integers from <code class="code">i</code> to <code class="code">j</code> included. It works
|
||
both for decreasing and increasing ranges.</p></div></div><div class="spec val" id="val-range'"><a href="#val-range'" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>range' : int <span class="keyword">‑></span> int <span class="keyword">‑></span> int <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Like <a href="index.html#val-range">range</a> but the second bound is excluded.
|
||
For instance <code class="code">range' 0 5 = [0;1;2;3;4]</code>.</p></div></div><div class="spec val" id="val-(--)"><a href="#val-(--)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(--) : int <span class="keyword">‑></span> int <span class="keyword">‑></span> int <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Infix alias for <code class="code">range</code>.</p></div></div><div class="spec val" id="val-(--^)"><a href="#val-(--^)" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>(--^) : int <span class="keyword">‑></span> int <span class="keyword">‑></span> int <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Infix alias for <code class="code">range'</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.17</li></ul></div></div><div class="spec val" id="val-replicate"><a href="#val-replicate" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>replicate : int <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Replicate the given element <code class="code">n</code> times.</p></div></div><div class="spec val" id="val-repeat"><a href="#val-repeat" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>repeat : int <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Concatenate the list with itself <code class="code">n</code> times.</p></div></div><h3>Association Lists</h3><div class="spec module" id="module-Assoc"><a href="#module-Assoc" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Assoc/index.html">Assoc</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec val" id="val-assoc"><a href="#val-assoc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assoc : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span></code></div><div class="doc"><p>Like <code class="code">Assoc.get_exn</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><div class="spec val" id="val-assoc_opt"><a href="#val-assoc_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assoc_opt : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> option</code></div><div class="doc"><p>Like <code class="code">Assoc.get</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><div class="spec val" id="val-assq_opt"><a href="#val-assq_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assq_opt : <span class="type-var">'a</span> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'b</span> option</code></div><div class="doc"><p>Safe version of <a href="index.html#val-assq">assq</a>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><div class="spec val" id="val-mem_assoc"><a href="#val-mem_assoc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mem_assoc : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">_</span>) <a href="index.html#type-t">t</a> <span class="keyword">‑></span> bool</code></div><div class="doc"><p>Like <code class="code">Assoc.mem</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><div class="spec val" id="val-remove_assoc"><a href="#val-remove_assoc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_assoc : eq:(<span class="type-var">'a</span> <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> bool) <span class="keyword">‑></span> <span class="type-var">'a</span> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-t">t</a> <span class="keyword">‑></span> (<span class="type-var">'a</span><span class="keyword"> * </span><span class="type-var">'b</span>) <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Like <code class="code">Assoc.remove</code>.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 2.0</li></ul></div></div><h3>References on Lists</h3><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.3.3</li></ul><div class="spec module" id="module-Ref"><a href="#module-Ref" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Ref/index.html">Ref</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec module-type" id="module-type-MONAD"><a href="#module-type-MONAD" class="anchor"></a><div class="def module-type"><code><span class="keyword">module type </span><a href="module-type-MONAD/index.html">MONAD</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"><h3>Monadic Operations</h3></div></div><div class="spec module" id="module-Traverse"><a href="#module-Traverse" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Traverse/index.html">Traverse</a> : <span class="keyword">functor</span> (<a href="Traverse/argument-1-M/index.html">M</a> : <a href="index.html#module-type-MONAD">MONAD</a>) -> <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><h3>Conversions</h3><div class="spec val" id="val-random"><a href="#val-random" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>random : <span class="type-var">'a</span> <a href="index.html#type-random_gen">random_gen</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-random_gen">random_gen</a></code></div><div class="doc"></div></div><div class="spec val" id="val-random_non_empty"><a href="#val-random_non_empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>random_non_empty : <span class="type-var">'a</span> <a href="index.html#type-random_gen">random_gen</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-random_gen">random_gen</a></code></div><div class="doc"></div></div><div class="spec val" id="val-random_len"><a href="#val-random_len" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>random_len : int <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-random_gen">random_gen</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-random_gen">random_gen</a></code></div><div class="doc"></div></div><div class="spec val" id="val-random_choose"><a href="#val-random_choose" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>random_choose : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-random_gen">random_gen</a></code></div><div class="doc"><p>Randomly choose an element in the list.</p><ul class="at-tag"><li><span class="at-tag raise">Raises</span> <span class="module-path">Not_found</span>: if the list is empty.</li></ul></div></div><div class="spec val" id="val-random_sequence"><a href="#val-random_sequence" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>random_sequence : <span class="type-var">'a</span> <a href="index.html#type-random_gen">random_gen</a> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-random_gen">random_gen</a></code></div><div class="doc"></div></div><div class="spec val" id="val-to_seq"><a href="#val-to_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_seq : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-sequence">sequence</a></code></div><div class="doc"><p>Return a <code class="code">sequence</code> of the elements of the list.</p></div></div><div class="spec val" id="val-of_seq"><a href="#val-of_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_seq : <span class="type-var">'a</span> <a href="index.html#type-sequence">sequence</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Build a list from a given <code class="code">sequence</code>.</p></div></div><div class="spec val" id="val-to_gen"><a href="#val-to_gen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_gen : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-gen">gen</a></code></div><div class="doc"><p>Return a <code class="code">gen</code> of the elements of the list.</p></div></div><div class="spec val" id="val-of_gen"><a href="#val-of_gen" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_gen : <span class="type-var">'a</span> <a href="index.html#type-gen">gen</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Build a list from a given <code class="code">gen</code>.</p></div></div><div class="spec val" id="val-to_klist"><a href="#val-to_klist" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_klist : <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-klist">klist</a></code></div><div class="doc"><p>Return a <code class="code">klist</code> of the elements of the list.</p></div></div><div class="spec val" id="val-of_klist"><a href="#val-of_klist" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_klist : <span class="type-var">'a</span> <a href="index.html#type-klist">klist</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Build a list from a given <code class="code">klist</code>.</p></div></div><h3>Infix Operators</h3><p>
|
||
It is convenient to <span class="xref-unresolved" title="unresolved reference to "open CCList.Infix"">open CCList.Infix</span> to access the infix operators
|
||
without cluttering the scope too much.</p><ul class="at-tag"><li><span class="at-tag since">Since</span>: 0.16</li></ul><div class="spec module" id="module-Infix"><a href="#module-Infix" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Infix/index.html">Infix</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><h3>IO</h3><div class="spec val" id="val-pp"><a href="#val-pp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp : ?⁠start:string <span class="keyword">‑></span> ?⁠stop:string <span class="keyword">‑></span> ?⁠sep:string <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-printer">printer</a> <span class="keyword">‑></span> <span class="type-var">'a</span> <a href="index.html#type-t">t</a> <a href="index.html#type-printer">printer</a></code></div><div class="doc"><p>Print the contents of a list.</p></div></div></body></html> |