Immutable maps using structural comparison
Maps based on structural comparison are
efficient. They are not a suitable choice if keys are recursive data structures
or require non-structural comparison semantics.
Type Definitions
Type | Description |
type Provider | Note: an abbreviation for Provider<'key,'a,IComparer<'key>> |
type Provider |
A collection of operations for creating and using maps based on a particular comparison function.
The 'tag type parameter is used to track information about the comparison function.
|
Values
Value | Description |
val Make : ('key -> 'key -> int) -> Provider<'key,'a> | |
val MakeTagged : 'tag -> Provider<'key,'a,'tag> when 'tag :> IComparer<'key> |
A functor to build a collection of operations for creating and using
maps based on the given comparison function. This returns a record that
contains the functions you use to create and manipulate maps of
this kind. The returned value is much like an ML module.
Language restrictions related to polymorphism may mean you
have to create a new instantiation of for each toplevel
key/value type pair.
To use this function you need to define a new named class that implements IComparer and
pass an instance of that class as the first argument. For example:
type MyComparer =
new() = { }
interface IComparer<string> with
member self.Compare(x,y) = ...
let MyStringMapProvider : Map.Provider < string,int > = Map.MakeTagged(new MyComparer())
|
Deprecated/Unsafe Type Definitions
Type | Description |
type CMap | Note: Consider using Tagged.Map<'key,'a> instead Note: an abbreviation for Map<'key,'a> |
type CMapOps | Note: Consider using Map.Provider<'key,'a> instead Note: an abbreviation for Provider<'key,'a> |
|