Last modified: 2022-08-01
This is a course page of
David Casperson
Associate Professor
Computer Science
University of Northern British Columbia

CPSC 370: Functional and Logic Programming

This page needs revising.


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.
Home page Semesters Site Map
go back Fall 2010 go forward
2023-10 other links


CPSC 200
Building .jar files
CPSC 370
Course Outline
Programming Policies
Prolog Resources
David’s Schedule

University Calendar