|
Functional Programming
(V4 + Ü2, SS 2007)
|
|
News
- On Friday, July 27, from 10:00 to 11:30 in room AH II,
you have the chance to inspect your exam and the exercises 1 to 11.
- The results of the exam are available. See below.
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.
Language
The course is given in English.
References
- P. Thiemann: Grundlagen der funktionalen Programmierung, Teubner, 1994.
- A. Field, P. Harrison: Functional Programming, Addison-Wesley, 1988.
- C. Reade: Elements of Functional Programming, Addison-Wesley, 1989.
- R. Bird: Introduction to Functional Programming using Haskell,
Prentice Hall Press, 1998.
- P. Pepper: Funktionale Programmierung, Springer, 2002.
- M. M. T. Chakravarty, G. C. Keller: An Introduction to Computing With
Haskell, Pearson, 2002.
Also appeared as "Einführung
in die Programmierung mit Haskell", Pearson, 2004.
- S. J. Thompson: Haskell: The Craft of Functional Programming, Addison-Wesley, 1999.
- S. Peyton Jones: The Implementation of Functional Programming Languages, Prentice Hall, 1987.
- J. Loeckx, K. Sieber: The Foundations of Program Verification, Wiley-Teubner, 1987.
- S. Peyton Jones (ed.): Haskell 98 Languages and Libraries: The Revised Report.
Cambridge University Press, 2003. (Available from http://haskell.org/onlinereport/)
- S. Peyton Jones: Tackling the Awkward Squad: monadic input/output,
concurrency, exceptions, and foreign-language calls in Haskell, Marktoberdorf
Summer School 2000. (Available from http://research.microsoft.com/users/simonpj/papers/marktoberdorf)
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.
Written Test for the Exercise Certificate
The written test (Übungsscheinklausur) takes place on Friday,
July 13, 10am in AH II instead of the last lecture. You can prepare
by looking at the old exam:
Exercise Certificate Exam Functional Programming 2005
ps,
pdf
Exercise Certificate Exam Functional Programming 2007
ps,
pdf
Results of the Exercise Certificate Exam
pdf
Exercises
The exercise sheets will be handed out during the lectures. They can
also be downloaded on this site.
Your solutions can be handed in until the following Wednesday in the exercise
course. In the exercise course the solutions of the latest
exercise sheet will be presented and your reviewed solutions of last week's
exercises will be handed out.
In order to take part in the exercises, please sign up here.
If you have questions regarding the review of your solution, please contact
one of the student teaching assistants.
- Sheet 1 (Apr 10, 2007)
ps,
pdf,
ps.gz,
pdf.gz,
solution1.hs
- Sheet 2 (Apr 17, 2007)
ps,
pdf,
ps.gz,
pdf.gz,
solution2.hs
- Sheet 3 (Apr 24, 2007)
ps,
pdf,
ps.gz,
pdf.gz,
solution3.hs
- Sheet 4 (Apr 30, 2007)
ps,
pdf,
ps.gz,
pdf.gz,
solution4.hs
Remark regarding Sheet 4:
- In Exercise 2) b) there is a typo: the complexity of take n fibs3 should be analyzed.
- Sheet 5 (May 08, 2007)
ps,
pdf,
ps.gz,
pdf.gz,
solution5.hs
- Sheet 6 (May 15, 2007)
ps,
pdf,
ps.gz,
pdf.gz,
- Sheet 7 (May 22, 2007)
ps,
pdf,
ps.gz,
pdf.gz,
- Sheet 8 (June 5, 2007)
ps,
pdf,
ps.gz,
pdf.gz,
- Sheet 9 (June 12, 2007)
ps,
pdf,
ps.gz,
pdf.gz,
solution9.ps
Remark regarding Sheet 9:
- In Exercise 1) a) there is a typo: the type of the argument should be List Int instead of [Int].
- Sheet 10 (June 22, 2007)
ps,
pdf,
ps.gz,
pdf.gz,
solution10.ps,
solution10e2.hs
- Sheet 11 (June 22, 2007)
ps,
pdf,
ps.gz,
pdf.gz
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.
Transparencies
Here are the transparencies used in the lecture.
- Transparency 1 (April 3, 2007)
ps,
pdf
- Transparency 2 (April 3, 2007)
ps,
pdf
- Transparency 3 (April 4, 2007)
ps,
pdf
- Transparency 4 (April 11, 2007)
ps,
pdf
- Transparency 5 (April 13, 2007)
ps,
pdf
- Transparency 6 (April 20, 2007)
ps,
pdf
- Transparency 7 (April 20, 2007)
ps,
pdf
- Transparency 8 (April 27, 2007)
ps,
pdf
- Transparency 9 (May 11, 2007)
ps,
pdf
- Transparency 10 (May 15, 2007)
ps,
pdf
- Transparency 11 (May 18, 2007)
ps,
pdf
- Transparency 12 (May 22, 2007)
ps,
pdf
- Transparency 13 (May 25, 2007)
ps,
pdf
- Transparency 14 (June 12, 2007)
ps,
pdf
- Transparency 15 (June 12, 2007)
ps,
pdf
- Transparency 16 (June 15, 2007)
ps,
pdf
- Transparency 17 (June 19, 2007)
ps,
pdf
- Transparency 18 (June 20, 2007)
ps,
pdf
- Transparency 19 (June 22, 2007)
ps,
pdf
- Transparency 20 (July 6, 2007)
ps,
pdf