Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > 19bb6433bb07a8b16410504336791904 > files > 35

ocaml-doc-3.06-5mdk.ppc.rpm

<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="Start" href="index.html">
<link rel="previous" href="GraphicsX11.html">
<link rel="next" href="Int32.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Arg" rel="Chapter" href="Arg.html">
<link title="Arith_status" rel="Chapter" href="Arith_status.html">
<link title="Array" rel="Chapter" href="Array.html">
<link title="ArrayLabels" rel="Chapter" href="ArrayLabels.html">
<link title="Big_int" rel="Chapter" href="Big_int.html">
<link title="Bigarray" rel="Chapter" href="Bigarray.html">
<link title="Buffer" rel="Chapter" href="Buffer.html">
<link title="Callback" rel="Chapter" href="Callback.html">
<link title="CamlinternalOO" rel="Chapter" href="CamlinternalOO.html">
<link title="Char" rel="Chapter" href="Char.html">
<link title="Complex" rel="Chapter" href="Complex.html">
<link title="Condition" rel="Chapter" href="Condition.html">
<link title="Dbm" rel="Chapter" href="Dbm.html">
<link title="Digest" rel="Chapter" href="Digest.html">
<link title="Dynlink" rel="Chapter" href="Dynlink.html">
<link title="Event" rel="Chapter" href="Event.html">
<link title="Filename" rel="Chapter" href="Filename.html">
<link title="Format" rel="Chapter" href="Format.html">
<link title="Gc" rel="Chapter" href="Gc.html">
<link title="Genlex" rel="Chapter" href="Genlex.html">
<link title="Graphics" rel="Chapter" href="Graphics.html">
<link title="GraphicsX11" rel="Chapter" href="GraphicsX11.html">
<link title="Hashtbl" rel="Chapter" href="Hashtbl.html">
<link title="Int32" rel="Chapter" href="Int32.html">
<link title="Int64" rel="Chapter" href="Int64.html">
<link title="Lazy" rel="Chapter" href="Lazy.html">
<link title="Lexing" rel="Chapter" href="Lexing.html">
<link title="List" rel="Chapter" href="List.html">
<link title="ListLabels" rel="Chapter" href="ListLabels.html">
<link title="Map" rel="Chapter" href="Map.html">
<link title="Marshal" rel="Chapter" href="Marshal.html">
<link title="MoreLabels" rel="Chapter" href="MoreLabels.html">
<link title="Mutex" rel="Chapter" href="Mutex.html">
<link title="Nativeint" rel="Chapter" href="Nativeint.html">
<link title="Num" rel="Chapter" href="Num.html">
<link title="Obj" rel="Chapter" href="Obj.html">
<link title="Oo" rel="Chapter" href="Oo.html">
<link title="Parsing" rel="Chapter" href="Parsing.html">
<link title="Pervasives" rel="Chapter" href="Pervasives.html">
<link title="Printexc" rel="Chapter" href="Printexc.html">
<link title="Printf" rel="Chapter" href="Printf.html">
<link title="Queue" rel="Chapter" href="Queue.html">
<link title="Random" rel="Chapter" href="Random.html">
<link title="Scanf" rel="Chapter" href="Scanf.html">
<link title="Set" rel="Chapter" href="Set.html">
<link title="Sort" rel="Chapter" href="Sort.html">
<link title="Stack" rel="Chapter" href="Stack.html">
<link title="StdLabels" rel="Chapter" href="StdLabels.html">
<link title="Str" rel="Chapter" href="Str.html">
<link title="Stream" rel="Chapter" href="Stream.html">
<link title="String" rel="Chapter" href="String.html">
<link title="StringLabels" rel="Chapter" href="StringLabels.html">
<link title="Sys" rel="Chapter" href="Sys.html">
<link title="Thread" rel="Chapter" href="Thread.html">
<link title="ThreadUnix" rel="Chapter" href="ThreadUnix.html">
<link title="Tk" rel="Chapter" href="Tk.html">
<link title="Unix" rel="Chapter" href="Unix.html">
<link title="UnixLabels" rel="Chapter" href="UnixLabels.html">
<link title="Weak" rel="Chapter" href="Weak.html"><link title="Generic interface" rel="Section" href="#6_Genericinterface">
<link title="Functorial interface" rel="Section" href="#6_Functorialinterface">
<link title="The polymorphic hash primitive" rel="Section" href="#6_Thepolymorphichashprimitive">
<title>Hashtbl</title>
</head>
<body>
<div class="navbar"><a href="GraphicsX11.html">Previous</a>
&nbsp;<a href="index.html">Up</a>
&nbsp;<a href="Int32.html">Next</a>
</div>
<center><h1>Module <a href="type_Hashtbl.html">Hashtbl</a></h1></center>
<br>
<pre><span class="keyword">module</span> Hashtbl: <code class="type">sig  end</code></pre><div class="info">
Hash tables and hash functions.
<p>

   Hash tables are hashed association tables, with in-place modification.<br>
</div>
<hr width="100%">
<br>
<br>
<a name="6_Genericinterface"></a>
<table cellpadding=5 cellspacing=5 width="100%">
<tr class="title6"><td><div align=center>
<span class="title6">Generic interface</span>
</div>
</td>
</tr>
</table>
<br><br>
<br><code><span class="keyword">type</span> <a name="TYPEt"></a>(<code class="type">'a, 'b</code>) t </code>
<div class="info">
The type of hash tables from type <code class="code"><span class="keywordsign">'</span>a</code> to type <code class="code"><span class="keywordsign">'</span>b</code>.<br>
</div>
<br>
<pre><span class="keyword">val</span> <a name="VALcreate"></a>create : <code class="type">int -> ('a, 'b) <a href="Hashtbl.html#TYPEt">t</a></code></pre><div class="info">
<code class="code"><span class="constructor">Hashtbl</span>.create n</code> creates a new, empty hash table, with
   initial size <code class="code">n</code>.  For best results, <code class="code">n</code> should be on the
   order of the expected number of elements that will be in
   the table.  The table grows as needed, so <code class="code">n</code> is just an
   initial guess.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALclear"></a>clear : <code class="type">('a, 'b) <a href="Hashtbl.html#TYPEt">t</a> -> unit</code></pre><div class="info">
Empty a hash table.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALadd"></a>add : <code class="type">('a, 'b) <a href="Hashtbl.html#TYPEt">t</a> -> 'a -> 'b -> unit</code></pre><div class="info">
<code class="code"><span class="constructor">Hashtbl</span>.add tbl x y</code> adds a binding of <code class="code">x</code> to <code class="code">y</code> in table <code class="code">tbl</code>.
   Previous bindings for <code class="code">x</code> are not removed, but simply
   hidden. That is, after performing <a href="Hashtbl.html#VALremove"><code class="code"><span class="constructor">Hashtbl</span>.remove</code></a><code class="code"> tbl x</code>,
   the previous binding for <code class="code">x</code>, if any, is restored.
   (Same behavior as with association lists.)<br>
</div>
<pre><span class="keyword">val</span> <a name="VALcopy"></a>copy : <code class="type">('a, 'b) <a href="Hashtbl.html#TYPEt">t</a> -> ('a, 'b) <a href="Hashtbl.html#TYPEt">t</a></code></pre><div class="info">
Return a copy of the given hashtable.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALfind"></a>find : <code class="type">('a, 'b) <a href="Hashtbl.html#TYPEt">t</a> -> 'a -> 'b</code></pre><div class="info">
<code class="code"><span class="constructor">Hashtbl</span>.find tbl x</code> returns the current binding of <code class="code">x</code> in <code class="code">tbl</code>,
   or raises <code class="code"><span class="constructor">Not_found</span></code> if no such binding exists.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALfind_all"></a>find_all : <code class="type">('a, 'b) <a href="Hashtbl.html#TYPEt">t</a> -> 'a -> 'b list</code></pre><div class="info">
<code class="code"><span class="constructor">Hashtbl</span>.find_all tbl x</code> returns the list of all data
   associated with <code class="code">x</code> in <code class="code">tbl</code>.
   The current binding is returned first, then the previous
   bindings, in reverse order of introduction in the table.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALmem"></a>mem : <code class="type">('a, 'b) <a href="Hashtbl.html#TYPEt">t</a> -> 'a -> bool</code></pre><div class="info">
<code class="code"><span class="constructor">Hashtbl</span>.mem tbl x</code> checks if <code class="code">x</code> is bound in <code class="code">tbl</code>.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALremove"></a>remove : <code class="type">('a, 'b) <a href="Hashtbl.html#TYPEt">t</a> -> 'a -> unit</code></pre><div class="info">
<code class="code"><span class="constructor">Hashtbl</span>.remove tbl x</code> removes the current binding of <code class="code">x</code> in <code class="code">tbl</code>,
   restoring the previous binding if it exists.
   It does nothing if <code class="code">x</code> is not bound in <code class="code">tbl</code>.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALreplace"></a>replace : <code class="type">('a, 'b) <a href="Hashtbl.html#TYPEt">t</a> -> 'a -> 'b -> unit</code></pre><div class="info">
<code class="code"><span class="constructor">Hashtbl</span>.replace tbl x y</code> replaces the current binding of <code class="code">x</code>
   in <code class="code">tbl</code> by a binding of <code class="code">x</code> to <code class="code">y</code>.  If <code class="code">x</code> is unbound in <code class="code">tbl</code>,
   a binding of <code class="code">x</code> to <code class="code">y</code> is added to <code class="code">tbl</code>.
   This is functionally equivalent to <a href="Hashtbl.html#VALremove"><code class="code"><span class="constructor">Hashtbl</span>.remove</code></a><code class="code"> tbl x</code>
   followed by <a href="Hashtbl.html#VALadd"><code class="code"><span class="constructor">Hashtbl</span>.add</code></a><code class="code"> tbl x y</code>.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALiter"></a>iter : <code class="type">('a -> 'b -> unit) -> ('a, 'b) <a href="Hashtbl.html#TYPEt">t</a> -> unit</code></pre><div class="info">
<code class="code"><span class="constructor">Hashtbl</span>.iter f tbl</code> applies <code class="code">f</code> to all bindings in table <code class="code">tbl</code>.
   <code class="code">f</code> receives the key as first argument, and the associated value
   as second argument. The order in which the bindings are passed to
   <code class="code">f</code> is unspecified. Each binding is presented exactly once
   to <code class="code">f</code>.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALfold"></a>fold : <code class="type">('a -> 'b -> 'c -> 'c) -> ('a, 'b) <a href="Hashtbl.html#TYPEt">t</a> -> 'c -> 'c</code></pre><div class="info">
<code class="code"><span class="constructor">Hashtbl</span>.fold f tbl init</code> computes
   <code class="code">(f kN dN ... (f k1 d1 init)...)</code>,
   where <code class="code">k1 ... kN</code> are the keys of all bindings in <code class="code">tbl</code>,
   and <code class="code">d1 ... dN</code> are the associated values.
   The order in which the bindings are passed to
   <code class="code">f</code> is unspecified. Each binding is presented exactly once
   to <code class="code">f</code>.<br>
</div>
<br>
<br>
<a name="6_Functorialinterface"></a>
<table cellpadding=5 cellspacing=5 width="100%">
<tr class="title6"><td><div align=center>
<span class="title6">Functorial interface</span>
</div>
</td>
</tr>
</table>
<br><br>
<pre><span class="keyword">module type</span> <a href="Hashtbl.HashedType.html">HashedType</a> = <code class="type">sig  end</code></pre><div class="info">
The input signature of the functor <a href="Hashtbl.Make.html"><code class="code"><span class="constructor">Hashtbl</span>.<span class="constructor">Make</span></code></a>.
</div>
<pre><span class="keyword">module type</span> <a href="Hashtbl.S.html">S</a> = <code class="type">sig  end</code></pre><div class="info">
The output signature of the functor <a href="Hashtbl.Make.html"><code class="code"><span class="constructor">Hashtbl</span>.<span class="constructor">Make</span></code></a>.
</div>
<pre><span class="keyword">module</span> <a href="Hashtbl.Make.html">Make</a>: <code class="type">functor (H : HashedType) -> sig  end</code></pre><div class="info">
Functor building an implementation of the hashtable structure.
</div>
<br>
<br>
<a name="6_Thepolymorphichashprimitive"></a>
<table cellpadding=5 cellspacing=5 width="100%">
<tr class="title6"><td><div align=center>
<span class="title6">The polymorphic hash primitive</span>
</div>
</td>
</tr>
</table>
<br><br>
<pre><span class="keyword">val</span> <a name="VALhash"></a>hash : <code class="type">'a -> int</code></pre><div class="info">
<code class="code"><span class="constructor">Hashtbl</span>.hash x</code> associates a positive integer to any value of
   any type. It is guaranteed that
   if <code class="code">x = y</code>, then <code class="code">hash x = hash y</code>. 
   Moreover, <code class="code">hash</code> always terminates, even on cyclic
   structures.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALhash_param"></a>hash_param : <code class="type">int -> int -> 'a -> int</code></pre><div class="info">
<code class="code"><span class="constructor">Hashtbl</span>.hash_param n m x</code> computes a hash value for <code class="code">x</code>, with the
   same properties as for <code class="code">hash</code>. The two extra parameters <code class="code">n</code> and
   <code class="code">m</code> give more precise control over hashing. Hashing performs a
   depth-first, right-to-left traversal of the structure <code class="code">x</code>, stopping
   after <code class="code">n</code> meaningful nodes were encountered, or <code class="code">m</code> nodes,
   meaningful or not, were encountered. Meaningful nodes are: integers;
   floating-point numbers; strings; characters; booleans; and constant
   constructors. Larger values of <code class="code">m</code> and <code class="code">n</code> means that more
   nodes are taken into account to compute the final hash
   value, and therefore collisions are less likely to happen.
   However, hashing takes longer. The parameters <code class="code">m</code> and <code class="code">n</code>
   govern the tradeoff between accuracy and speed.<br>
</div>
</body></html>