@@ -216,3 +216,34 @@ Fibonacci(number):
216216Note: Algorithms described in this document are written to be easy to
217217understand. Implementers are encouraged to include equivalent but optimized
218218implementations.
219+
220+ ## Data Collections
221+
222+ This specification describes the semantic properties of data collections using
223+ types like "list", "set" and "map". These describe observable data collections
224+ such as the result of applying a grammar and the inputs and outputs of
225+ algorithms. They also describe unobservable data collections such as temporary
226+ data internal to an algorithm. Each data collection type defines the operations
227+ available, and whether values are unique or ordered.
228+
229+ ** List**
230+
231+ :: The term _ list_ describes a sequence of values which may not be unique. A
232+ list is ordered unless explicitly stated otherwise (as an "unordered list"). For
233+ clarity the term "ordered list" may be used when an order is semantically
234+ important.
235+
236+ ** Set**
237+
238+ :: The term _ set_ describes a unique collection of values, where each value is
239+ considered a "member" of that set. A set is unordered unless explicitly stated
240+ otherwise (as an "ordered set"). For clarity the term "unordered set" may be
241+ used when the lack of an order is semantically important.
242+
243+ ** Map**
244+
245+ :: The term _ map_ describes a collection of "entry" key and value pairs, where
246+ the set of keys across all entries is unique but the values across all entries
247+ may repeat. A map is unordered unless explicitly stated otherwise (as an
248+ "ordered map"). For clarity the term "unordered map" may be used when the lack
249+ of an order is semantically important.
0 commit comments