Description

This course provides an introduction to functional logic programming throught its basic ideas, foundations and implementation techniques. FLP combines the distinctive features of functional programming (algebraic data types, lazy evaluation, polymorphic typing, first-class functions, monadic I/O) and logic programming (logic variables, non-determinism, search) seamlessly through narrowing and residuation. The course will address three kinds of questions: Why are these features useful? What is their underlying theory? How can they be implemented? Lectures will be augmented with weekly programming assignments in Curry, a leading functional logic language. Exercises will serve both to illustrate the use of the language and to illuminate the underlying theory and implementation issues. Prior exposure to functional or logic programming will be useful, but is not required.

Preview

Tags

Users

  • @draganigajic

Comments and Reviews