Language Support
One of the earliest languages to support sets was Pascal; many languages now include it, whether in the core language or in a standard library.
- Java offers the
Set
interface to support sets (with theHashSet
class implementing it using a hash table), and theSortedSet
sub-interface to support sorted sets (with theTreeSet
class implementing it using a binary search tree). - Apple's Foundation framework (part of Cocoa) provides the Objective-C classes
NSSet
,NSMutableSet
,NSCountedSet
,NSOrderedSet
, andNSMutableOrderedSet
. The CoreFoundation APIs provide the CFSet and CFMutableSet types for use in C. - Python has built-in
set
andfrozenset
types since 2.4, and since Python 3.0 and 2.7, supports non-empty set literals using a curly-bracket syntax, e.g.:{x, y, z}
. - The .NET Framework provides the generic
HashSet
andSortedSet
classes that implement the genericISet
interface. - Smalltalk's class library includes
Set
andIdentitySet
, using equality and identity for inclusion test respectively. Many dialects provide variations for compressed storage (NumberSet
,CharacterSet
), for ordering (OrderedSet
,SortedSet
, etc.) or for weak references (WeakIdentitySet
). - Ruby's standard library includes a
set
module which containsSet
andSortedSet
classes that implement sets using hash tables, the latter allowing iteration in sorted order. - OCaml's standard library contains a
Set
module, which implements a functional set data structure using binary search trees. - The GHC implementation of Haskell provides a
Data.Set
module, which implements a functional set data structure using binary search trees. - The Tcl Tcllib package provides a set module which implements a set data structure based upon TCL lists.
As noted in the previous section, in languages which do not directly support sets but do support associative arrays, sets can be emulated using associative arrays, by using the elements as keys, and using a dummy value as the values, which are ignored.
Read more about this topic: Set (abstract Data Type)
Famous quotes containing the words language and/or support:
“For all symbols are fluxional; all language is vehicular and transitive, and is good, as ferries and horses are, for conveyance, not as farms and houses are, for homestead.”
—Ralph Waldo Emerson (18031882)
“I support all people on earth
who have bodies like and unlike my body,
skins and moles and old scars,
secret and public hair,
crooked toes. I support
those who have done nothing large.”
—Naomi Shihab Nye (b. 1952)