mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-16 15:56:21 -05:00
8 lines
No EOL
17 KiB
HTML
8 lines
No EOL
17 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Projection (ocaml.Projection)</title><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../index.html">ocaml</a> » Projection</nav><header class="odoc-preamble"><h1>Module <code><span>Projection</span></code></h1><p>Representation of projections from closures and blocks.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-project_closure"><a href="#type-project_closure" class="anchor"></a><code><span><span class="keyword">type</span> project_closure</span><span> = </span><span>{</span></code><ol><li id="type-project_closure.set_of_closures" class="def record field anchored"><a href="#type-project_closure.set_of_closures" class="anchor"></a><code><span>set_of_closures : <a href="../Variable/index.html#type-t">Variable.t</a>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>must yield a set of closures</p><span class="comment-delim">*)</span></div></li><li id="type-project_closure.closure_id" class="def record field anchored"><a href="#type-project_closure.closure_id" class="anchor"></a><code><span>closure_id : <a href="../Closure_id/index.html#type-t">Closure_id.t</a>;</span></code></li></ol><code><span>}</span></code></div><div class="spec-doc"><p>The selection of one closure given a set of closures, required before a function defined by said set of closures can be applied. See more detailed documentation below on <code>set_of_closures</code>.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-move_within_set_of_closures"><a href="#type-move_within_set_of_closures" class="anchor"></a><code><span><span class="keyword">type</span> move_within_set_of_closures</span><span> = </span><span>{</span></code><ol><li id="type-move_within_set_of_closures.closure" class="def record field anchored"><a href="#type-move_within_set_of_closures.closure" class="anchor"></a><code><span>closure : <a href="../Variable/index.html#type-t">Variable.t</a>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>must yield a closure</p><span class="comment-delim">*)</span></div></li><li id="type-move_within_set_of_closures.start_from" class="def record field anchored"><a href="#type-move_within_set_of_closures.start_from" class="anchor"></a><code><span>start_from : <a href="../Closure_id/index.html#type-t">Closure_id.t</a>;</span></code></li><li id="type-move_within_set_of_closures.move_to" class="def record field anchored"><a href="#type-move_within_set_of_closures.move_to" class="anchor"></a><code><span>move_to : <a href="../Closure_id/index.html#type-t">Closure_id.t</a>;</span></code></li></ol><code><span>}</span></code></div><div class="spec-doc"><p>The selection of one closure given another closure in the same set of closures. See more detailed documentation below on <code>set_of_closures</code>. The <code>move_to</code> closure must be part of the free variables of <code>start_from</code>.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-project_var"><a href="#type-project_var" class="anchor"></a><code><span><span class="keyword">type</span> project_var</span><span> = </span><span>{</span></code><ol><li id="type-project_var.closure" class="def record field anchored"><a href="#type-project_var.closure" class="anchor"></a><code><span>closure : <a href="../Variable/index.html#type-t">Variable.t</a>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>must yield a closure</p><span class="comment-delim">*)</span></div></li><li id="type-project_var.closure_id" class="def record field anchored"><a href="#type-project_var.closure_id" class="anchor"></a><code><span>closure_id : <a href="../Closure_id/index.html#type-t">Closure_id.t</a>;</span></code></li><li id="type-project_var.var" class="def record field anchored"><a href="#type-project_var.var" class="anchor"></a><code><span>var : <a href="../Var_within_closure/index.html#type-t">Var_within_closure.t</a>;</span></code></li></ol><code><span>}</span></code></div><div class="spec-doc"><p>The selection from a closure of a variable bound by said closure. In other words, access to a function's environment. Also see more detailed documentation below on <code>set_of_closures</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-print_project_closure"><a href="#val-print_project_closure" class="anchor"></a><code><span><span class="keyword">val</span> print_project_closure : <span><a href="../Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span><a href="#type-project_closure">project_closure</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-print_move_within_set_of_closures"><a href="#val-print_move_within_set_of_closures" class="anchor"></a><code><span><span class="keyword">val</span> print_move_within_set_of_closures :
|
||
<span><a href="../Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span>
|
||
<span><a href="#type-move_within_set_of_closures">move_within_set_of_closures</a> <span class="arrow">-></span></span>
|
||
unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-print_project_var"><a href="#val-print_project_var" class="anchor"></a><code><span><span class="keyword">val</span> print_project_var : <span><a href="../Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span><a href="#type-project_var">project_var</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compare_project_var"><a href="#val-compare_project_var" class="anchor"></a><code><span><span class="keyword">val</span> compare_project_var : <span><a href="#type-project_var">project_var</a> <span class="arrow">-></span></span> <span><a href="#type-project_var">project_var</a> <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compare_project_closure"><a href="#val-compare_project_closure" class="anchor"></a><code><span><span class="keyword">val</span> compare_project_closure : <span><a href="#type-project_closure">project_closure</a> <span class="arrow">-></span></span> <span><a href="#type-project_closure">project_closure</a> <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compare_move_within_set_of_closures"><a href="#val-compare_move_within_set_of_closures" class="anchor"></a><code><span><span class="keyword">val</span> compare_move_within_set_of_closures :
|
||
<span><a href="#type-move_within_set_of_closures">move_within_set_of_closures</a> <span class="arrow">-></span></span>
|
||
<span><a href="#type-move_within_set_of_closures">move_within_set_of_closures</a> <span class="arrow">-></span></span>
|
||
int</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = </span></code><ol><li id="type-t.Project_var" class="def variant constructor anchored"><a href="#type-t.Project_var" class="anchor"></a><code><span>| </span><span><span class="constructor">Project_var</span> <span class="keyword">of</span> <a href="#type-project_var">project_var</a></span></code></li><li id="type-t.Project_closure" class="def variant constructor anchored"><a href="#type-t.Project_closure" class="anchor"></a><code><span>| </span><span><span class="constructor">Project_closure</span> <span class="keyword">of</span> <a href="#type-project_closure">project_closure</a></span></code></li><li id="type-t.Move_within_set_of_closures" class="def variant constructor anchored"><a href="#type-t.Move_within_set_of_closures" class="anchor"></a><code><span>| </span><span><span class="constructor">Move_within_set_of_closures</span> <span class="keyword">of</span> <a href="#type-move_within_set_of_closures">move_within_set_of_closures</a></span></code></li><li id="type-t.Field" class="def variant constructor anchored"><a href="#type-t.Field" class="anchor"></a><code><span>| </span><span><span class="constructor">Field</span> <span class="keyword">of</span> int * <a href="../Variable/index.html#type-t">Variable.t</a></span></code></li></ol></div></div><div class="odoc-include"><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <a href="../Identifiable/module-type-S/index.html">Identifiable.S</a> <span class="keyword">with</span> <span><span class="keyword">type</span> <a href="../Identifiable/module-type-S/index.html#type-t">t</a> := <a href="#type-t">t</a></span></span></code></summary><div class="odoc-spec"><div class="spec module anchored" id="module-T"><a href="#module-T" class="anchor"></a><code><span><span class="keyword">module</span> <a href="T/index.html">T</a></span><span> : <a href="../Identifiable/module-type-Thing/index.html">Identifiable.Thing</a> <span class="keyword">with</span> <span><span class="keyword">type</span> <a href="../Identifiable/module-type-Thing/index.html#type-t">t</a> = <a href="#type-t">t</a></span></span></code></div></div><div class="odoc-include"><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <a href="../Identifiable/module-type-Thing/index.html">Identifiable.Thing</a> <span class="keyword">with</span> <span><span class="keyword">type</span> <a href="../Identifiable/module-type-Thing/index.html#type-t">t</a> := <a href="T/index.html#type-t">T.t</a></span></span></code></summary><div class="odoc-include"><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <a href="../Stdlib/Hashtbl/module-type-HashedType/index.html">Hashtbl.HashedType</a> <span class="keyword">with</span> <span><span class="keyword">type</span> <a href="../Stdlib/Hashtbl/module-type-HashedType/index.html#type-t">t</a> := <a href="T/index.html#type-t">T.t</a></span></span></code></summary><div class="odoc-spec"><div class="spec value anchored" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal : <span><a href="T/index.html#type-t">T.t</a> <span class="arrow">-></span></span> <span><a href="T/index.html#type-t">T.t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p>The equality predicate used to compare keys.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-hash"><a href="#val-hash" class="anchor"></a><code><span><span class="keyword">val</span> hash : <span><a href="T/index.html#type-t">T.t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>A hashing function on keys. It must be such that if two keys are equal according to <code>equal</code>, then they have identical hash values as computed by <code>hash</code>. Examples: suitable (<code>equal</code>, <code>hash</code>) pairs for arbitrary key types include</p><ul><li>(<code>(=)</code>, <a href="#val-hash"><code>hash</code></a>) for comparing objects by structure (provided objects do not contain floats)</li><li>(<code>(fun x y -> compare x y = 0)</code>, <a href="#val-hash"><code>hash</code></a>) for comparing objects by structure and handling <a href="../Stdlib/index.html#val-nan"><code>Stdlib.nan</code></a> correctly</li><li>(<code>(==)</code>, <a href="#val-hash"><code>hash</code></a>) for comparing objects by physical equality (e.g. for mutable or cyclic objects).</li></ul></div></div></details></div><div class="odoc-include"><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <a href="../Stdlib/Map/module-type-OrderedType/index.html">Map.OrderedType</a> <span class="keyword">with</span> <span><span class="keyword">type</span> <a href="../Stdlib/Map/module-type-OrderedType/index.html#type-t">t</a> := <a href="T/index.html#type-t">T.t</a></span></span></code></summary><div class="odoc-spec"><div class="spec value anchored" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span><span class="keyword">val</span> compare : <span><a href="T/index.html#type-t">T.t</a> <span class="arrow">-></span></span> <span><a href="T/index.html#type-t">T.t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>A total ordering function over the keys. This is a two-argument function <code>f</code> such that <code>f e1 e2</code> is zero if the keys <code>e1</code> and <code>e2</code> are equal, <code>f e1 e2</code> is strictly negative if <code>e1</code> is smaller than <code>e2</code>, and <code>f e1 e2</code> is strictly positive if <code>e1</code> is greater than <code>e2</code>. Example: a suitable ordering function is the generic structural comparison function <a href="../Stdlib/index.html#val-compare"><code>Stdlib.compare</code></a>.</p></div></div></details></div><div class="odoc-spec"><div class="spec value anchored" id="val-output"><a href="#val-output" class="anchor"></a><code><span><span class="keyword">val</span> output : <span><a href="../Stdlib/index.html#type-out_channel">out_channel</a> <span class="arrow">-></span></span> <span><a href="T/index.html#type-t">T.t</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-print"><a href="#val-print" class="anchor"></a><code><span><span class="keyword">val</span> print : <span><a href="../Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span><a href="T/index.html#type-t">T.t</a> <span class="arrow">-></span></span> unit</span></code></div></div></details></div><div class="odoc-spec"><div class="spec module anchored" id="module-Set"><a href="#module-Set" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Set/index.html">Set</a></span><span> : <a href="../Identifiable/module-type-Set/index.html">Identifiable.Set</a> <span class="keyword">with</span> <span><span class="keyword">module</span> <a href="../Identifiable/module-type-Set/T/index.html">T</a> := <a href="T/index.html">T</a></span></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Map"><a href="#module-Map" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Map/index.html">Map</a></span><span> : <a href="../Identifiable/module-type-Map/index.html">Identifiable.Map</a> <span class="keyword">with</span> <span><span class="keyword">module</span> <a href="../Identifiable/module-type-Map/T/index.html">T</a> := <a href="T/index.html">T</a></span></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Tbl"><a href="#module-Tbl" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Tbl/index.html">Tbl</a></span><span> : <a href="../Identifiable/module-type-Tbl/index.html">Identifiable.Tbl</a> <span class="keyword">with</span> <span><span class="keyword">module</span> <a href="../Identifiable/module-type-Tbl/T/index.html">T</a> := <a href="T/index.html">T</a></span></span></code></div></div></details></div><div class="odoc-spec"><div class="spec value anchored" id="val-projecting_from"><a href="#val-projecting_from" class="anchor"></a><code><span><span class="keyword">val</span> projecting_from : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="../Variable/index.html#type-t">Variable.t</a></span></code></div><div class="spec-doc"><p>Return which variable the given projection projects from.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map_projecting_from"><a href="#val-map_projecting_from" class="anchor"></a><code><span><span class="keyword">val</span> map_projecting_from : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>f:<span>(<span><a href="../Variable/index.html#type-t">Variable.t</a> <span class="arrow">-></span></span> <a href="../Variable/index.html#type-t">Variable.t</a>)</span> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Change the variable that the given projection projects from.</p></div></div></div></body></html> |