CPSC 370: Functional and Logic Programming
Click the rest of the
course outline for an overview of the course structure.
Click the book list for
a list of references.
Syllabus
 Course Content:

The following list is quite approximate and will be refined shortly:

An introduction to functional programming. Static versus dynamic
typing. Strict versus nonstrict evaluation. Some common functional
programning languages.
Pure versus impure functional
programming.

Functions and partial functions.
Cartesian products. Disjoint unions.
Currying .
 Standard ML.
Builtin types and literals. Tuples. Lists.
Declarations. Function declarations and function values.
Product types and function types.
 Recursion, tail recursion, and accumulator arguments.
Higher order functions for lists.
 Scheme
 Space and time complexity for functional programs and data structures.
 An introduction to logic programming.
Prolog.
 Facts. Rules. Goals. Variables. Conjunctions. Horn Clauses.
The Unification algorithm.
Accumulator arguments.
Difference lists.
Cuts. Negation.
Arithmetic.
Debugging.
