Functional Programming
(V4 + Ü2, SS 2005)
|
|
News
The updated course notes (Skript) are now available
from the secretary (Room 4213, Building E1).
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, J. Hughes (eds.): Report on the Programming Language Haskell 98. (Available from http://haskell.org/definition)
- 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) took place on Friday,
July 22, 10am in AH II instead of the last lecture:
Exercise Certificate Exam Functional Programming 2005
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.
- Sheet 1 (Apr 15, 2005)
ps,
pdf,
ps.gz,
pdf.gz,
solution1.hs
Remark regarding Sheet 1:
- The solution should be handed in until Friday (April 22nd), not Wednesday.
If you want to hand in your solution earlier, please go to
Peter Schneider-Kamp's office (room 4207, building E1).
- The last type of 1 (a) should read [Int] -> [Int] -> [Int].
- Sheet 2 (Apr 27, 2005)
ps,
pdf,
ps.gz,
pdf.gz,
solution2.hs
- Sheet 3 (May 04, 2005)
ps,
pdf,
ps.gz,
pdf.gz,
solution3.hs
Remark regarding Sheet 3:
- In 1 (c) please use foldTree from (a), not from (b).
- Sheet 4 (May 13, 2005)
ps,
pdf,
ps.gz,
pdf.gz,
(example sessions)
solution4.hs
- Sheet 5 (May 25, 2005)
ps,
pdf,
ps.gz,
pdf.gz,
solution5.hs
solution5.ps
solution5.pdf
solution5.dotty
- Sheet 6 (Jun 01, 2005)
ps,
pdf,
ps.gz,
pdf.gz
Remark regarding Sheet 6:
- The deadline for delivery is extended to Friday, June 10, because of
the DIES.
- Sheet 7 (Jun 10, 2005)
ps,
pdf,
ps.gz,
pdf.gz
solution7.hs
solution7.dotty
solution7_all.dotty
- Sheet 8 (Jun 15, 2005)
ps,
pdf,
ps.gz,
pdf.gz
solution8.ps
Remark regarding Sheet 8:
- The last rule of minus in Exercise 2 b) (and c)) should have "Zero" as its
right-hand side (instead of "0").
- Sheet 9 (Jun 22, 2005)
ps,
pdf,
ps.gz,
pdf.gz
solution9.ps
- Sheet 10 (Jun 29, 2005)
ps,
pdf,
ps.gz,
pdf.gz
solution10.ps
solution10_2.tar.gz
- Sheet 11 (Jul 06, 2005)
ps,
pdf,
ps.gz,
pdf.gz
solution11.ps
1a.ps
1b.ps
1c.ps
2a.ps
2b.ps
2c.ps
- Sheet 12 (Jul 13, 2005)
ps,
pdf,
ps.gz,
pdf.gz
solution12.ps
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 12, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 2 (April 12 & 13, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 3 (April 13 & 15, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 4 (April 26 & 27, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 5 (April 27, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 6 (April 29, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 7 (May 6, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 8 (May 13, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 9 (May 24, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 10 (May 27, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 11 (May 27, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 12 (June 7, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 13 (June 10, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 14(June 10, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 15(June 17, 2005)
ps,
pdf,
ps.gz,
pdf.gz --- Updated and corrected on June 20
- Transparency 16(June 24, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 17(June 24, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 18 (June 28, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 19 (July 1, 2005)
ps,
pdf,
ps.gz,
pdf.gz
- Transparency 20 (July 12, 2005)
ps,
pdf,
ps.gz,
pdf.gz
|
 |