Possible Midterm Topics
If it’s not on this list, it’s not on the midterm.
What is a paradigm?For functional and imperative paradigms, be able to give:
•Paradigm definitions
•Language features specific to the paradigm
•Justification for programming one way over the other
Functional Programming in Racket
•Conditional branching: if vs cond
•Writing recursive functions
•Tracing the evaluation steps of a recursive function
•Higher Order Functions
•Taking and returning functions: why, what are higher order functions for?
•Be able to write your own higher order function
•And use the built-ins: map, filter, foldl/r
•Tail call recursion: be able to recognize, trace, and/or implement a tail recursive function
The Lambda Calculus
•Resolve a complex function application using eager and/or lazy evaluation
•Given a truth table, implement the Boolean operation.
•Recognize whether a Lambda Calculus function successfully implements recursion, or not.
Functional Programming in Haskell
•Type signatures
•Don’t worry about memorizing the Haskell type hierarchy!! But be able to give or explain a given type signature, including with basic type classes, and also for composed or partially applied functions (see practice midterm for example)
•Writing recursive functions using pattern matching (and guards and if-then-else).
•Partial application and currying
•Function composition
•List comprehensions
•Infinite lists
•Lazy evaluation: what it is, why it’s offered
•Trace the lazy evaluation of an expression
•Tail recursion in Haskell
•Higher order functions: implementing and using map, filter, foldl/r
Reviews
There are no reviews yet.