Possible Midterm Topics
If its not on this list, its 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
Dont 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 its 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.