@@ -214,5 +214,36 @@ Fibonacci(number):
214214- Return {Fibonacci(previousNumber)} + {Fibonacci(previousPreviousNumber)}.
215215
216216Note: 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