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 non-strict 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.