Comparison of programming languages (associative array): Difference between revisions

Content deleted Content added
SNOBOL: copy editing
Standard ML: copy editing
Line 1,752:
</syntaxhighlight>
 
=== [[Standard ML]] ===
The SML'97 standard of the [[Standard ML]] programming language does not provide any associative containers. However, various implementations of Standard ML do provide associative containers.
 
The library of the popular [[Standard ML of New Jersey]] (SML/NJ) implementation provides a signature (somewhat like an "interface"), <code>ORD_MAP</code>, which defines a common interface for ordered functional (immutable) associative arrays. There are several general functors, functors—<code>BinaryMapFn</code>, <code>ListMapFn</code>, <code>RedBlackMapFn</code>, and <code>SplayMapFn</code>, that—that allow you to create the corresponding type of ordered map (the types are a [[self-balancing binary search tree]], sorted [[association list]], [[red-black tree]], and [[splay tree]], respectively) using a user-provided structure to describe the key type and comparator. The functor returns a structure thatin followsaccordance with the <code>ORD_MAP</code> interface. In addition, there are two pre-defined modules for associative arrays withthat employ integer keys: <code>IntBinaryMap</code> and <code>IntListMap</code>.
 
<syntaxhighlight lang="sml">
Line 1,800:
</syntaxhighlight>
 
Monomorphic hash tables are also supported, using the <code>HashTableFn</code> functor.
 
Another Standard ML implementation, [[Moscow ML]], also provides some associative containers. First, it provides polymorphic hash tables in the <code>Polyhash</code> structure. Also, some functional maps from the SML/NJ library above are available as <code>Binarymap</code>, <code>Splaymap</code>, and <code>Intmap</code> structures.