Hi, <br><br>I suppose a &#39;mapping&#39; or &#39;mapper&#39; is right out due to the map fuction. (and would hash-table-map become map-mapping or map-mapper ?)<br><br>&#39;Index&#39; comes to mind,&nbsp; (ie a book index associates terms, with a page number reference)<br>
<br>Table is one of those overloaded words, and while shorter than dictionary, doesn&#39;t really tell you anything about the actual thing referred too. (table actually makes me think of database tables with named columns, dictionary is not much better)<br>
<br>What are they called in lisp or haskell?<br><br>Cheers, <br><br>Stephen<br><br><br><br><div class="gmail_quote">On Mon, Apr 7, 2008 at<br>&nbsp;10:31 PM, Matthew Flatt &lt;<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">While we&#39;re cleaning up the language in v4, we&#39;d like to do something<br>
about the API for using hash tables:<br>
<br>
&nbsp;* The names `hash-table-get&#39; and `hash-table-put!&#39; are long enough to<br>
 &nbsp; be annoying.<br>
<br>
&nbsp;* The names don&#39;t follow the usual `-ref&#39; and `-set!&#39; covention. (I<br>
 &nbsp; always have trouble remembering that it&#39;s `hash-table-put!&#39;, not<br>
 &nbsp; `hash-table-set!&#39;.)<br>
<br>
&nbsp;* We&#39;d like more things to have the same API, such as a dictionary<br>
 &nbsp; that provides constant-time functional update.<br>
<br>
<br>
Here&#39;s the current plan to deal with those problems:<br>
<br>
&nbsp;* Change `hash-table-get&#39; to `table-ref&#39;.<br>
<br>
&nbsp;* Change hash-table-put!&#39; to `table-set!&#39;.<br>
<br>
&nbsp;* Change &quot;hash-table&quot; in most other function names to just &quot;table&quot;:<br>
 &nbsp; `hash-table-count&#39; -&gt; `table-count&#39;.<br>
<br>
&nbsp;* Add some property for creating new kinds of tables. The property<br>
 &nbsp; value supplies an implementation for `table-ref&#39;, etc.<br>
<br>
&nbsp;* Leave the name `make-hash-table&#39; and `make-immutable-hash-table&#39; as<br>
 &nbsp; they are, on the grounds that they create a specific kind of table.<br>
 &nbsp; Also leave the `#hash&#39; and `#hasheq&#39; notations alone. Keep<br>
 &nbsp; `hash-table?&#39;, but also add `table?&#39;.<br>
<br>
&nbsp;* Add `hash-table-set&#39; (no &quot;!&quot;), which takes an table and functionally<br>
 &nbsp; produces an extended one. Immutable hash tables would support this<br>
 &nbsp; operation, and mutables one wouldn&#39;t. Note that `#hash()&#39; and<br>
 &nbsp; `#hasheq()&#39; become useful base cases for inductively building up a<br>
 &nbsp; table with `hash-table-set&#39;.<br>
<br>
&nbsp;* Add `table-remove&#39;, the functional complement of `table-remove!&#39;.<br>
<br>
&nbsp;* Add `for/table&#39;, which builds an immutable hash table.<br>
<br>
<br>
Since lots of `hash-table-...&#39; functions change names in `scheme/base&#39;,<br>
this will break lots of v3.99 code. (Of course, the `mzscheme&#39; module<br>
would export the old names.) We&#39;d also have to pick a new name for the<br>
`table&#39; datatype in Scribble, and no doubt in other places.<br>
<br>
It&#39;s a late in the v3.99 series to make changes like this, but tables<br>
seem important enough to do it anyway --- and important enough to favor<br>
this change over hundreds of other potential improvements that won&#39;t<br>
happen in v4.<br>
<br>
This plan is tentative, but it will happen very soon if we don&#39;t<br>
discover serious problems with it.<br>
<br>
<br>
Matthew<br>
<br>
_________________________________________________<br>
 &nbsp;For list-related administrative tasks:<br>
 &nbsp;<a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Cheers,<br><br>Stephen<br><br>--<br>Stephen De Gabrielle<br><a href="mailto:s.degabrielle@ucl.ac.uk">s.degabrielle@ucl.ac.uk</a><br>Telephone +44 (0)20 7679 5242 (x45242)<br>
Mobile 079 851 890 45<br>Project: Making Sense of Information (MaSI)<br><a href="http://www.uclic.ucl.ac.uk/annb/MaSI.html">http://www.uclic.ucl.ac.uk/annb/MaSI.html</a><br><br>UCLIC: University College London Interaction Centre<br>
<a href="http://www.uclic.ucl.ac.uk/">http://www.uclic.ucl.ac.uk/</a><br><br>Remax House - 31/32 Alfred Place<br>London - WC1E 7DP