Skip to main content
Skip header
Terminated in academic year 2009/2010

Functional and Logic Programming

Type of study Follow-up Master
Language of instruction Czech
Code 456-0310/01
Abbreviation FLP
Course title Functional and Logic Programming
Credits 6
Coordinating department Department of Computer Science
Course coordinator prof. RNDr. Marie Duží, CSc.

Subject syllabus

Lectures:
Declarative programming languages, functional and logic programming fundamentals.
Lambda calculus, lambda conversion, fixed-point operator, recursive functions.
Functional data representation; logical values, tuples, collection, numbers.
Data types of the Haskell language, the definition of user-defined data types, abstraction.
Definition of functions, unification patterns, lazy evaluation.
List data structures, using recursion definition, infinite lists.
Proving in functional languages, structural induction.
Imperative features of functional programs, monads, computation-state representation, input-output, exceptions.
Application of functional programming - denotation semantics.
Aplication of functional programming - analysis of a text.
Principles of logic programming; substitution, resolution, unification.
Prolog data types; lists, tuples. User-defined data types, trees.
Basic programming techniques of logic programming. Search and ordering.
Meta-programming, work with clauses.

Programming with restrictions, language like CLP.


Projects:
Projekt No 1: Functional specification of the solution of a given problem, and its implementation in the Haskell language.
Projekt No 2: Specification of the solution of a given problem using the clausal form of predicate logic, and its implementation in Prolog.

Projekt 2: Specifikace řešení zadaného problému ve formě klauzulí predikátové logiky a jeho implementace v jazyce Prolog.

Literature

Programming language Haskell: http://www.haskell.org or http://learnyouahaskell.com/
Programming language Prolog: http://www.swi.psy.uva.nl/projects/SWI-Prolog/

Advised literature