--- type: mixed --- ### Stuff - Definition and syntax of lists - List comprehension: - Set comprehensions and list comprehension - Generators (pattern <- list expression) - Tests (Boolean expressions within list comprehension) - Multiple generators and dependent generators - Meaning of list comprehensions - Important list functions: - `length` - `++` (concatenation) - `reverse` - `replicate` - `head`, `last`, `tail`, `init` - `take`, `drop` - `concat` - `zip`, `unzip` - `and`, `or`, `sum`, `product` - Pattern matching on lists: - Constructors: `[]` (empty list) and `:` (cons operator) - Patterns and pattern matching using wildcards (_) - Recursion over lists - Indexing lists using `!!` operator - Examples: - `concat` function using primitive recursion - `insertionSort` function - `zip` and `take` functions using multiple arguments in recursion - `quickSort` function using general recursion - `reverse'` function using an accumulating parameter - `ups` function (finding maximal ascending sublists) using an accumulating parameter