Explain core functional programming concepts like expressions, values, and types
Define and use functions, including higher-order functions and recursion
Work with basic data types: numbers, booleans, characters, strings, tuples, and lists
Apply list operations such as map, filter, and fold to solve problems
Analyze program efficiency using asymptotic notation and reduction models
Reason about programs using induction and prove properties of recursive functions