Contents

The course gives an introduction to functional programming
using the language Haskell. Moreover, we will discuss
models for the semantics and the implementation of
functional languages. This also includes techniques for
type checking and type inference as well as methods for
the optimization of functional programs.

Here is a short overview on the correspondence of the material in the lecture
to material in the books mentioned above. However, the
material is not identical to the one in the books.

Chapter 1.1- 1.3
of the lecture corresponds to Chapters 2-7 of
Thiemann's book. A good source
for an introduction to Haskell is also the book by
Bird.

Chapter 1.4 of the lecture corresponds to Chapter 10 in Bird's book
and Chapter 18 in Thompson's book.

Chapter 2.1 of the lecture corresponds to Chapter 3.3 and 4 in the book
by Loeckx and Sieber.

Chapter 2.2 of the lecture corresponds to Chapter 10 and 12.2 in Reade's
book.

Chapter 3 corresponds to Chapter 12 of Reade's book. Additional material
can be found in Chapter 15 of Thiemann's book and
Chapter 6 and Appendix B and C of the book by Field
& Harrison.

Chapter 4 corresponds to Chapter 7 of Field & Harrison's book. Additional
material can be found in Chapter 15.4 and 15.5 of
Thiemann's book and Chapter 11 of the book by
Reade.

Course Notes

The course notes for the lecture are now available. They can be obtained
from the secretary for copying.

Area

Theoretical Computer Science, Area of Specialization

Certificate

To get a certificate for this course (Übungsschein) you must reach at
least 50 % of the points on the exercise sheets and pass a test at the end
of the course. We recommend the acquisition of this certificate, since this
is a good opportunity to prepare for the diploma or master examination.

The test will be in the weeks 24.-28.2.03 and 8.-11.4.03. If you want
to participate and have
reached the necessary 50 %, just send an email with the week in that
you want to make the test to
RenÚ Thiemann.

Exercises

The exercise sheets will be handed out each Friday in the lecture. They can
also be downloaded on this site.
Your solutions can be handed in until the next Thursday in the exercise
course or in Room 4211 (Building E1). In the exercise course the solutions of the latest
exercise sheet will be presented and the your reviewed solutions of last week's
exercises will be handed out.

There are some reviewed exercise sheets that have not been collected in the exercise course.
So, if you are missing some of your sheets come to my office and I will hand them out to you. RenÚ

Haskell

In the course, we use the functional programming language Haskell. Information
on Haskell as well as (free) interpreters and
compilers can be found on the Haskell home page www.haskell.org.
To learn Haskell, we recommend the Haskell interpreter Hugs.