TheInfoList

In
computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , , and . Computer science ...
, an associative array, map, symbol table, or dictionary is an
abstract data type In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , ...
composed of a
collection Collection or Collections may refer to: * Cash collection, the function of an accounts receivable department * Collection agency, agency to collect cash * Collections management (museum) ** Collection (artwork), objects in a particular field fo ...
of (key, value) pairs, such that each possible key appears at most once in the collection. Operations associated with this data type allow: * the addition of a pair to the collection; * the removal of a pair from the collection; * the modification of an existing pair; * the lookup of a value associated with a particular key. Implementing associative arrays poses the dictionary problem, a classic computer science problem: the task of designing a
data structure In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of ...

that maintains a set of data during 'search', 'delete', and 'insert' operations. The two major solutions to the dictionary problem are a
hash table In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and s ...
and a
search tree In computer science, a search tree is a tree data structure used for locating specific keys from within a set. In order for a tree to function as a search tree, the key for each node must be greater than any keys in subtrees on the left, and less ...
..Dietzfelbinger, M., Karlin, A., Mehlhorn, K., Meyer auf der Heide, F., Rohnert, H., and Tarjan, R. E. 1994
"Dynamic Perfect Hashing: Upper and Lower Bounds"
. SIAM J. Comput. 23, 4 (Aug. 1994), 738-761. http://portal.acm.org/citation.cfm?id=182370
In some cases it is also possible to solve the problem using directly addressed
array ARRAY, also known as ARRAY Now, is an independent distribution company launched by film maker and former publicist Ava DuVernay Ava Marie DuVernay (; born August 24, 1972) is an American filmmaker. She won the directing award in the U.S. dram ...
s,
binary search tree In computer science, a binary search tree (BST), also called an ordered or sorted binary tree, is a Rooted tree, rooted binary tree whose internal nodes each store a key greater than all the keys in the node's left subtree and less than those i ...

s, or other more specialized structures. Many programming languages include associative arrays as
primitive data type In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algori ...
s, and they are available in software libraries for many others.
Content-addressable memory Content-addressable memory (CAM) is a special type of computer memory used in certain very-high-speed searching applications. It is also known as associative memory or associative storage and compares input search data against a table of stored da ...
is a form of direct hardware-level support for associative arrays. Associative arrays have many applications including such fundamental programming patterns as
memoization In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and softwa ...
and the
decorator pattern In object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "Object (computer science), objects", which can contain data and code: data in the form of Field (computer science), fields (of ...
., pp. 597–599. The name does not come from the
associative property In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (algebra), space (geometry), and calculus, change (mathematical analysis, analysis). ...
known in mathematics. Rather, it arises from the fact that we associate values with keys.

# Operations

In an associative array, the association between a key and a value is often known as a "mapping", and the same word mapping may also be used to refer to the process of creating a new association. The operations that are usually defined for an associative array are: * Add or insert: add a new $\left(key, value\right)$ pair to the collection, mapping the new key to its new value. The arguments to this operation are the key and the value. * Reassign: replace the value in one of the $\left(key, value\right)$ pairs that are already in the collection, mapping an existing key to a new value. As with an insertion, the arguments to this operation are the key and the value. * Remove or delete: remove a $\left(key, value\right)$ pair from the collection, unmapping a given key from its value. The argument to this operation is the key. * Lookup: find the value (if any) that is bound to a given key. The argument to this operation is the key, and the value is returned from the operation. If no value is found, some associative array implementations raise an exception, while others create a pair with the given key and the default value of the value type (zero, empty container...). Often then instead of add or reassign there is a single set operation that adds a new $\left(key, value\right)$ pair if one does not already exist, and otherwise reassigns it. In addition, associative arrays may also include other operations such as determining the number of mappings or constructing an
iterator In computer programming, an iterator is an object (computing), object that enables a programmer to traverse a Container (data structure), container, particularly List (abstract data type), lists. Various types of iterators are often provided via a ...
to loop over all the mappings. Usually, for such an operation, the order in which the mappings are returned may be implementation-defined. A
multimap In computer science, a multimap (sometimes also multihash or multidict) is a generalization of a associative array, map or associative array abstract data type in which more than one value may be associated with and returned for a given key. Both ma ...
generalizes an associative array by allowing multiple values to be associated with a single key. A bidirectional map is a related abstract data type in which the mappings operate in both directions: each value must be associated with a unique key, and a second lookup operation takes a value as an argument and looks up the key associated with that value.

# Example

Suppose that the set of loans made by a library is represented in a data structure. Each book in a library may be checked out only by a single library patron at a time. However, a single patron may be able to check out multiple books. Therefore, the information about which books are checked out to which patrons may be represented by an associative array, in which the books are the keys and the patrons are the values. Using notation from
Python PYTHON was a Cold War contingency plan of the Government of the United Kingdom, British Government for the continuity of government in the event of Nuclear warfare, nuclear war. Background Following the report of the Strath Committee in 1955, the ...
or
JSON JSON (JavaScript Object Notation, pronounced ; also ) is an open standard An open standard is a standard Standard may refer to: Flags * Colours, standards and guidons * Standard (flag), a type of flag used for personal identification Norm ...
, the data structure would be: A lookup operation on the key "Great Expectations" would return "John". If John returns his book, that would cause a deletion operation, and if Pat checks out a book, that would cause an insertion operation, leading to a different state:

# Implementation

For dictionaries with very small numbers of mappings, it may make sense to implement the dictionary using an association list, a
linked list In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , ...

of mappings. With this implementation, the time to perform the basic dictionary operations is linear in the total number of mappings; however, it is easy to implement and the constant factors in its running time are small. Another very simple implementation technique, usable when the keys are restricted to a narrow range, is direct addressing into an array: the value for a given key ''k'' is stored at the array cell ''A'' 'k'' or if there is no mapping for ''k'' then the cell stores a special
sentinel value In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a specific task. Programming involves tasks such as: analysis, generati ...
that indicates the absence of a mapping. As well as being simple, this technique is fast: each dictionary operation takes constant time. However, the space requirement for this structure is the size of the entire keyspace, making it impractical unless the keyspace is small. The two major approaches to implementing dictionaries are a
hash table In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and s ...
or a
search tree In computer science, a search tree is a tree data structure used for locating specific keys from within a set. In order for a tree to function as a search tree, the key for each node must be greater than any keys in subtrees on the left, and less ...
.

## Hash table implementations

The most frequently used general purpose implementation of an associative array is with a
hash table In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and s ...
: an
array ARRAY, also known as ARRAY Now, is an independent distribution company launched by film maker and former publicist Ava DuVernay Ava Marie DuVernay (; born August 24, 1972) is an American filmmaker. She won the directing award in the U.S. dram ...
combined with a
hash function A hash function is any function Function or functionality may refer to: Computing * Function key A function key is a key on a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical ...

that separates each key into a separate "bucket" of the array. The basic idea behind a hash table is that accessing an element of an array via its index is a simple, constant-time operation. Therefore, the average overhead of an operation for a hash table is only the computation of the key's hash, combined with accessing the corresponding bucket within the array. As such, hash tables usually perform in O(1) time, and outperform alternatives in most situations. Hash tables need to be able to handle
collisions In physics, a collision is any event in which two or more bodies exert Force, forces on each other in a relatively short time. Although the most common use of the word ''collision'' refers to incidents in which two or more objects collide with gr ...
: when the hash function maps two different keys to the same bucket of the array. The two most widespread approaches to this problem are separate chaining and open addressing.. In separate chaining, the array does not store the value itself but stores a pointer to another container, usually an association list, that stores all of the values matching the hash. On the other hand, in open addressing, if a hash collision is found, then the table seeks an empty spot in an array to store the value in a deterministic manner, usually by looking at the next immediate position in the array. Open addressing has a lower
cache miss Cache, caching, or caché may refer to: Places * Cache (Aosta) Cache is a frazione of the city of Aosta, in the Aosta Valley region of Italy. Frazioni of Aosta Valley Aosta {{Aosta-geo-stub ..., a frazione in Italy * Cache Creek (disambig ...
ratio than separate chaining when the table is mostly empty. However, as the table becomes filled with more elements, open addressing's performance degrades exponentially. Additionally, separate chaining uses less memory in most cases, unless the entries are very small (less than four times the size of a pointer).

## Tree implementations

### Self-balancing binary search trees

Another common approach is to implement an associative array with a
self-balancing binary search tree 251px, The same tree after being height-balanced; the average path effort decreased to 3.00 node accesses In computer science, a self-balancing (or height-balanced) binary search tree is any node (computer science), node-based binary search tree ...
, such as an
AVL tree Image:AVL-tree-wBalance_K.svg, 262px, Fig. 1: AVL tree with balance factors (green) In computer science, an AVL tree (named after inventors Adelson-Velsky and Landis) is a self-balancing binary search tree. It was the first such data structure to ...
or a red-black tree. Compared to hash tables, these structures have both advantages and weaknesses. The worst-case performance of self-balancing binary search trees is significantly better than that of a hash table, with a time complexity in
big O notation Big O notation is a mathematical notation that describes the limiting behavior of a function Function or functionality may refer to: Computing * Function key A function key is a key on a computer A computer is a machine that can be p ...
of O(log ''n''). This is in contrast to hash tables, whose worst-case performance involves all elements sharing a single bucket, resulting in O(''n'') time complexity. In addition, and like all binary search trees, self-balancing binary search trees keep their elements in order. Thus, traversing its elements follows a least-to-greatest pattern, whereas traversing a hash table can result in elements being in seemingly random order. However, hash tables have a much better average-case time complexity than self-balancing binary search trees of O(1), and their worst-case performance is highly unlikely when a good
hash function A hash function is any function Function or functionality may refer to: Computing * Function key A function key is a key on a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical ...

is used. It is worth noting that a self-balancing binary search tree can be used to implement the buckets for a hash table that uses separate chaining. This allows for average-case constant lookup, but assures a worst-case performance of O(log ''n''). However, this introduces extra complexity into the implementation, and may cause even worse performance for smaller hash tables, where the time spent inserting into and balancing the tree is greater than the time needed to perform a
linear search In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Alg ...
on all of the elements of a linked list or similar data structure.

### Other trees

Associative arrays may also be stored in unbalanced
binary search tree In computer science, a binary search tree (BST), also called an ordered or sorted binary tree, is a Rooted tree, rooted binary tree whose internal nodes each store a key greater than all the keys in the node's left subtree and less than those i ...

s or in data structures specialized to a particular type of keys such as
radix tree In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algori ...
s,
trie In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , ...

s,
Judy array In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algorit ...
s, or
van Emde Boas tree A van Emde Boas tree (), also known as a vEB tree or van Emde Boas priority queue, is a tree data structure In computer science, a tree is a widely used abstract data type that simulates a hierarchical tree structure, with a root value and subt ...
s, though the ability of these implementation methods within comparison to hash tables varies; for instance, Judy trees remain indicated to perform with a smaller quantity of efficiency than hash tables, while carefully selected hash tables generally perform with increased efficiency in comparison to adaptive radix trees, with potentially greater restrictions on the types of data that they can handle. The advantages of these alternative structures come from their ability to handle operations beyond the basic ones of an associative array, such as finding the mapping whose key is the closest to a queried key, when the query is not itself present in the set of mappings.

# Ordered dictionary

The basic definition of the dictionary does not mandate an order. To guarantee a fixed order of enumeration, ordered versions of the associative array are often used. There are two senses of an ordered dictionary: * The order of enumeration is always deterministic for a given set of keys by sorting. This is the case for tree-based implementations, one representative being the container of C++. * The order of enumeration is key-independent and is instead based on the order of insertion. This is the case for the "ordered dictionary" in .NET Framework and
Python PYTHON was a Cold War contingency plan of the Government of the United Kingdom, British Government for the continuity of government in the event of Nuclear warfare, nuclear war. Background Following the report of the Strath Committee in 1955, the ...
. The latter sense of ordered dictionaries are more commonly encountered. They can be implemented using an association list, or by overlaying a
doubly linked list In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algorit ...

on top of a normal dictionary. The latter approach, as used by CPython before version 3.6, has the advantage of keeping the potentially better complexity of another implementation. CPython 3.6+ makes dictionaries ordered by splitting the hash table into an insertion-ordered array of k-v pairs and a sparse array ("hash table") of indices.

# Language support

Associative arrays can be implemented in any programming language as a package and many language systems provide them as part of their standard library. In some languages, they are not only built into the standard system, but have special syntax, often using array-like subscripting. Built-in syntactic support for associative arrays was introduced in 1969 by SNOBOL4, under the name "table". TMG offered tables with string keys and integer values.
MUMPS Mumps is a viral disease A viral disease (or viral infection) occurs when an organism's body is invaded by pathogenic viruses, and infection, infectious virus particles (virions) attach to and enter susceptible cells. Structural characterist ...

made multi-dimensional associative arrays, optionally persistent, its key data structure.
SETL SETL (SET Language) is a very high-level programming language based on the mathematical theory of sets. It was originally developed by (Jack) Jacob T. Schwartz at the New York University New York University (NYU) is a private resear ...
supported them as one possible implementation of sets and maps. Most modern scripting languages, starting with
AWK AWK (''awk'') is a domain-specific language A domain-specific language (DSL) is a computer languageComputer language is a formal language In logic, mathematics, computer science, and linguistics, a formal language consists of string (compute ...
and including
Rexx Rexx (Restructured Extended Executor) is a programming language that can be interpreted or compiled In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (t ...
,
Perl Perl is a family of two high-level High-level and low-level, as technical terms, are used to classify, describe and point to specific Objective (goal), goals of a systematic operation; and are applied in a wide range of contexts, such as, for ...
,
PHP PHP is a general-purpose scripting language A scripting language or script language is a programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce various k ...

,
Tcl Tcl (pronounced "tickle" or as an initialism An acronym is a word In linguistics, a word of a spoken language can be defined as the smallest sequence of phonemes that can be uttered in isolation with semantic, objective or pragmatics, prac ...

,
JavaScript JavaScript (), often abbreviated JS, is a programming language A programming language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), ma ...

,
Maple ''Acer'' is a genus Genus /ˈdʒiː.nəs/ (plural genera /ˈdʒen.ər.ə/) is a taxonomic rank In biological classification In biology, taxonomy () is the scientific study of naming, defining (Circumscription (taxonomy), circumscr ...
,
Python PYTHON was a Cold War contingency plan of the Government of the United Kingdom, British Government for the continuity of government in the event of Nuclear warfare, nuclear war. Background Following the report of the Strath Committee in 1955, the ...
,
Ruby A ruby is a pink-ish red to blood-red colored gemstone A gemstone (also called a fine gem, jewel, precious stone, or semi-precious stone) is a piece of mineral In geology and mineralogy, a mineral or mineral species is, broadly spea ...
,
Wolfram Language The Wolfram Language is a general multi-paradigm programming language developed by Wolfram Research. It emphasizes symbolic computation In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quant ...
, Go, and Lua, support associative arrays as a primary container type. In many more languages, they are available as library functions without special syntax. In
Smalltalk Smalltalk is an object-oriented programming, object-oriented, dynamically typed reflection (computer science), reflective programming language. Smalltalk was created as the language underpinning the "new world" of computing exemplified by "human ...

,
Objective-C Objective-C is a general-purpose, object-oriented Object-oriented programming (OOP) is a programming paradigm Program, programme, programmer, or programming may refer to: Business and management * Program management, the process of m ...
,
.NET The domain name net is a generic top-level domain (gTLD) used in the Domain Name System of the Internet. The name is derived from the word ''network'', indicating it was originally intended for organizations involved in networking technologies, ...
,
Python PYTHON was a Cold War contingency plan of the Government of the United Kingdom, British Government for the continuity of government in the event of Nuclear warfare, nuclear war. Background Following the report of the Strath Committee in 1955, the ...
,
REALbasic The Xojo programming environment and programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce various kinds of Input/output, output. Programming languages are ...
,
Swift The Society for Worldwide Interbank Financial Telecommunication (SWIFT), legally S.W.I.F.T. SCRL, is a Belgian Belgian may refer to: * Something of, or related to, Belgium Belgium, ; french: Belgique ; german: Belgien officially the ...
, VBA and
Delphi Delphi (; ), in legend previously called Pytho (Πυθώ), in ancient times was a sacred precinct that served as the seat of Pythia, the major oracle who was consulted about important decisions throughout the ancient classical world. The oracle ...
they are called ''dictionaries''; in
Perl Perl is a family of two high-level High-level and low-level, as technical terms, are used to classify, describe and point to specific Objective (goal), goals of a systematic operation; and are applied in a wide range of contexts, such as, for ...
,
Ruby A ruby is a pink-ish red to blood-red colored gemstone A gemstone (also called a fine gem, jewel, precious stone, or semi-precious stone) is a piece of mineral In geology and mineralogy, a mineral or mineral species is, broadly spea ...
and
Seed7 Seed7 is an extensible Extensibility is a software engineering and systems design Systems design is the process of defining the architecture File:Plan d'exécution du second étage de l'hôtel de Brionne (dessin) De Cotte 2503c – Gallic ...
they are called ''hashes''; in
C++ C++ () is a general-purpose programming language In computer software, a general-purpose programming language is a programming language dedicated to a general-purpose, designed to be used for writing software in a wide variety of application ...

,
Java Java ( id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 147.7 million people, Java is the world's List of ...
, Go,
Clojure Clojure (, like ''closure'') is a dynamic programming language, dynamic and functional programming, functional dialect (computing), dialect of the Lisp (programming language), Lisp programming language on the Java (software platform), Java plat ...
, Scala,
OCaml OCaml ( , formerly Objective Caml) is a general-purpose, multi-paradigm programming language Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. S ...
, Haskell they are called ''maps'' (see map (C++), unordered_map (C++), and ); in
Common Lisp Common Lisp (CL) is a dialect of the Lisp programming language Lisp (historically LISP) is a family of programming language A programming language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) incl ...
and
Windows PowerShell PowerShell or Microsoft PowerShell (formerly Windows PowerShell) is a task automation and configuration management Configuration management (CM) is a systems engineering Systems engineering is an field of and that focuses on how to de ...
, they are called ''hash tables'' (since both typically use this implementation); in
Maple ''Acer'' is a genus Genus /ˈdʒiː.nəs/ (plural genera /ˈdʒen.ər.ə/) is a taxonomic rank In biological classification In biology, taxonomy () is the scientific study of naming, defining (Circumscription (taxonomy), circumscr ...
and Lua, they are called ''tables''. In
PHP PHP is a general-purpose scripting language A scripting language or script language is a programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce various k ...

, all arrays can be associative, except that the keys are limited to integers and strings. In JavaScript (see also
JSON JSON (JavaScript Object Notation, pronounced ; also ) is an open standard An open standard is a standard Standard may refer to: Flags * Colours, standards and guidons * Standard (flag), a type of flag used for personal identification Norm ...
), all objects behave as associative arrays with string-valued keys, while the Map and WeakMap types take arbitrary objects as keys. In Lua, they are used as the primitive building block for all data structures. In
Visual FoxPro Visual FoxPro was a Microsoft Microsoft Corporation is an American multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from ...
, they are called ''Collections''. The
D language D, also known as Dlang, is a multi-paradigm programming language, multi-paradigm system programming language created by Walter Bright at Digital Mars and released in 2001. Andrei Alexandrescu joined the design and development effort in 2007. Tho ...
also has support for associative arrays.

# Permanent storage

Many programs using associative arrays will at some point need to store that data in a more permanent form, like in a
computer file A computer file is a computer resource for recording data Data (; ) are individual facts, statistics, or items of information, often numeric. In a more technical sense, data are a set of values of qualitative property, qualitative or quant ...
. A common solution to this problem is a generalized concept known as ''archiving'' or ''
serialization In computing, serialization (US spelling) or serialisation (UK spelling) is the process of translating a data structure In computer science Computer science deals with the theoretical foundations of information, algorithms and the ar ...

'', which produces a text or binary representation of the original objects that can be written directly to a file. This is most commonly implemented in the underlying object model, like .Net or Cocoa, which include standard functions that convert the internal data into text form. The program can create a complete text representation of any group of objects by calling these methods, which are almost always already implemented in the base associative array class."Archives and Serializations Programming Guide"
Apple Inc., 2012
For programs that use very large data sets, this sort of individual file storage is not appropriate, and a
database management system In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and sof ...
(DB) is required. Some DB systems natively store associative arrays by serializing the data and then storing that serialized data and the key. Individual arrays can then be loaded or saved from the database using the key to refer to them. These key–value stores have been used for many years and have a history as long as that as the more common
relational database A relational database is a digital database In , a database is an organized collection of stored and accessed electronically from a . Where databases are more complex they are often developed using formal techniques. The (DBMS) is the tha ...
(RDBs), but a lack of standardization, among other reasons, limited their use to certain niche roles. RDBs were used for these roles in most cases, although saving objects to a RDB can be complicated, a problem known as object-relational impedance mismatch. After , the need for high performance databases suitable for
cloud computing Cloud computing is the on-demand availability of computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets of operatio ...

and more closely matching the internal structure of the programs using them led to a renaissance in the key–value store market. These systems can store and retrieve associative arrays in a native fashion, which can greatly improve performance in common web-related workflows.

*
Key–value database A key–value database, or key–value store, is a data storage paradigm designed for storing, retrieving, and managing associative arrays, and a data structure Image:Hash table 3 1 1 0 1 0 0 SP.svg, 315px, A data structure known as a hash tab ...
*
Tuple In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (algebra), space (geometry), and calculus, change (mathematical analysis, analysis). ...
*
Function (mathematics) In mathematics, a functionThe words map, mapping, transformation, correspondence, and operator are often used synonymously. . from a set (mathematics), set to a set assigns to each element of exactly one element of . The set is called the Dom ...
*
JSON JSON (JavaScript Object Notation, pronounced ; also ) is an open standard An open standard is a standard Standard may refer to: Flags * Colours, standards and guidons * Standard (flag), a type of flag used for personal identification Norm ...