3.1. ALGORITHMIC COMPLEXITY3.1.1. Primitive operations3.1.2. Complexity3.1.2.1. Asymptotic complexity3.2. ARRAYS3.2.1. Array literals3.2.2. Array indexing3.2.3. Array concatenation3.2.4. Aliasing3.2.5. Subarrays3.2.6. Creation3.2.7. Iteration3.2.8. Map3.2.9. Folds3.2.10. Sorting3.2.11. Pattern matching3.3. LISTS3.3.1. Sorting3.3.2. Searching3.3.2.1. Membership3.3.2.2. Predicate3.3.2.3. Association lists3.3.3. Filtering3.3.4. Maps and folds3.3.5. Pattern matching3.4. SETS3.4.1. Creation3.4.2. Insertion3.4.3. Cardinality3.4.4. Set-theoretic operations3.4.5. Comparison3.5. HASH TABLES3.5.1. Creation3.5.2. Searching3.5.3. Insertion, replacement and removal3.5.4. Higher-order functions3.6. MAPS3.6.1. Creation3.6.2. Searching3.6.3. Higher-order functions3.7. CHOOSING A DATA STRUCTURE3.8. Sequences3.9. Heterogeneous Containers3.10. TREES3.10.1. Balanced trees3.10.2. Unbalanced trees3.10.2.1. Array-based force computation3.10.2.2. Tree-based force computation3.10.2.3. Performance comparison3.10.3. Abstract syntax trees3.10.3.1. Definition3.10.3.2. Easier construction3.10.3.3. Evaluating expressions3.10.3.4. Term rewriting