@@ -216,3 +216,34 @@ Fibonacci(number):
216
216
Note: Algorithms described in this document are written to be easy to
217
217
understand. Implementers are encouraged to include equivalent but optimized
218
218
implementations.
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