@@ -214,5 +214,36 @@ Fibonacci(number):
214
214
- Return {Fibonacci(previousNumber)} + {Fibonacci(previousPreviousNumber)}.
215
215
216
216
Note: Algorithms described in this document are written to be easy to
217
- understand. Implementers are encouraged to include equivalent but optimized
218
- implementations.
217
+ understand. Implementers are encouraged to include observably equivalent but
218
+ optimized implementations.
219
+
220
+ ## Data Collections
221
+
222
+ Algorithms within this specification refer to abstract data collection types to
223
+ express normative structural, uniqueness, and ordering requirements. Temporary
224
+ data collections internal to an algorithm use these types to best describe
225
+ expected behavior, but implementers are encouraged to provide observably
226
+ equivalent but optimized implementations. Implementations may use any data
227
+ structure as long as the expected requirements are met.
228
+
229
+ ** List**
230
+
231
+ :: A _ list_ is an ordered collection of values which may contain duplicates. A
232
+ value added to a list is ordered after existing values.
233
+
234
+ ** Set**
235
+
236
+ :: A _ set_ is a collection of values which must not contain duplicates.
237
+
238
+ :: An _ ordered set_ is a set which has a defined order. A value added to an
239
+ ordered set, which does not already contain that value, is ordered after
240
+ existing values.
241
+
242
+ ** Map**
243
+
244
+ :: A _ map_ is a collection of entries, each of which has a key and value. Each
245
+ entry has a unique key, and can be directly referenced by that key.
246
+
247
+ :: An _ ordered map_ is a map which has a defined order. An entry added to an
248
+ ordered map, which does not have an entry with that key, is ordered after
249
+ existing entries.
0 commit comments