Units:
4
Functional versus imperative programming. Type systems and polymorphism; the ML language. Higher order functions, lazy evaluation. Abstract versus concrete syntax, structural and well-founded induction. The lambda calculus, reduction strategies, combinators. Denotational semantics, elementary domain theory.
Prerequisites:
CSE 130 or equivalent, or consent of instructor.
Formerly CSE 273