mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
2 lines
No EOL
11 KiB
HTML
2 lines
No EOL
11 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CCZipper (containers-data.CCZipper)</title><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../index.html">containers-data</a> » CCZipper</nav><header class="odoc-preamble"><h1>Module <code><span>CCZipper</span></code></h1><p>List Zipper</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.0</li></ul></header><div class="odoc-content"><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> <span>'a t</span></span><span> = <span><span class="type-var">'a</span> list</span> * <span><span class="type-var">'a</span> list</span></span></code></div><div class="spec-doc"><p>The pair <code>l, r</code> represents the list <code>List.rev_append l r</code>, but with the focus on <code>r</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-empty"><a href="#val-empty" class="anchor"></a><code><span><span class="keyword">val</span> empty : <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Empty zipper.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_empty"><a href="#val-is_empty" class="anchor"></a><code><span><span class="keyword">val</span> is_empty : <span><span><span class="type-var">_</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p>Empty zipper? Returns <code>true</code> iff the two lists are empty.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_list"><a href="#val-to_list" class="anchor"></a><code><span><span class="keyword">val</span> to_list : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> list</span></span></code></div><div class="spec-doc"><p>Convert the zipper back to a list. <code>to_list (l,r)</code> is <code>List.rev_append l r</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_rev_list"><a href="#val-to_rev_list" class="anchor"></a><code><span><span class="keyword">val</span> to_rev_list : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> list</span></span></code></div><div class="spec-doc"><p>Convert the zipper back to a <i>reversed</i> list. In other words, <code>to_list (l,r)</code> is <code>List.rev_append r l</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-make"><a href="#val-make" class="anchor"></a><code><span><span class="keyword">val</span> make : <span><span><span class="type-var">'a</span> list</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Create a zipper pointing at the first element of the list.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-left"><a href="#val-left" class="anchor"></a><code><span><span class="keyword">val</span> left : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Go to the left, or do nothing if the zipper is already at leftmost pos.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-left_exn"><a href="#val-left_exn" class="anchor"></a><code><span><span class="keyword">val</span> left_exn : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Go to the left, or</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if the zipper is already at leftmost pos.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-right"><a href="#val-right" class="anchor"></a><code><span><span class="keyword">val</span> right : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Go to the right, or do nothing if the zipper is already at rightmost pos.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-right_exn"><a href="#val-right_exn" class="anchor"></a><code><span><span class="keyword">val</span> right_exn : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Go to the right, or</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if the zipper is already at rightmost pos.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-modify"><a href="#val-modify" class="anchor"></a><code><span><span class="keyword">val</span> modify : <span><span>(<span><span><span class="type-var">'a</span> option</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> option</span>)</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Modify the current element, if any, by returning a new element, or returning <code>None</code> if the element is to be deleted.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-insert"><a href="#val-insert" class="anchor"></a><code><span><span class="keyword">val</span> insert : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Insert an element at the current position. If an element was focused, <code>insert x l</code> adds <code>x</code> just before it, and focuses on <code>x</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-remove"><a href="#val-remove" class="anchor"></a><code><span><span class="keyword">val</span> remove : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>remove l</code> removes the current element, if any.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_focused"><a href="#val-is_focused" class="anchor"></a><code><span><span class="keyword">val</span> is_focused : <span><span><span class="type-var">_</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p>Is the zipper focused on some element? That is, will <a href="#val-focused"><code>focused</code></a> return a <code>Some v</code>?</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-focused"><a href="#val-focused" class="anchor"></a><code><span><span class="keyword">val</span> focused : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> option</span></span></code></div><div class="spec-doc"><p>Return the focused element, if any. <code>focused zip = Some _</code> iff <code>empty zip = false</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-focused_exn"><a href="#val-focused_exn" class="anchor"></a><code><span><span class="keyword">val</span> focused_exn : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p>Return the focused element, or</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Not_found</span> <p>if the zipper is at an end.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-drop_before"><a href="#val-drop_before" class="anchor"></a><code><span><span class="keyword">val</span> drop_before : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Drop every element on the "left" (calling <a href="#val-left"><code>left</code></a> then will do nothing).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-drop_after"><a href="#val-drop_after" class="anchor"></a><code><span><span class="keyword">val</span> drop_after : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Drop every element on the "right" (calling <a href="#val-right"><code>right</code></a> then will do nothing), keeping the focused element, if any.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-drop_after_and_focused"><a href="#val-drop_after_and_focused" class="anchor"></a><code><span><span class="keyword">val</span> drop_after_and_focused : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Drop every element on the "right" (calling <a href="#val-right"><code>right</code></a> then will do nothing), <i>including</i> the focused element if it is present.</p></div></div></div></body></html> |