sehr empfehlenswert
Einführung in Haskell, welche auch die komplexeren Themen wie Typclasses und Monads enthält.
Einführungen in die funktionale Programmierung (am Beispiel von Haskell) gibt es eine ganze Reihe. Häufig werden aber Monads aussen vor gelassen. Dieses Buch verwendet fast die Hälfte des Inhalts dem Umgang mit den verschiedenen monadischen Typen und dem was dazu gehört, wie beispielsweise Typconstructures, Typeclasses, Exceptions etc.
1. Problem solving, programming and calculation 2. A module of shapes: part I 3. Simple graphics 4. Shapes II: drawing shapes 5. Polymorphic and higher-order functions 6. Shapes III: perimeters of shapes 7. Trees 8. A module of regions 9. More about higher-order functions 10. Drawing regions 11. Proof by induction 12. Qualified types 13. A module of simple animations 14. Programming with streams 15. A module of reactive animations 16. Communicating with the outside world 17. Rendering reactive animations 18. Higher-order types 19. An imperative robot language 20. Functional music composition 21. Algebraic properties of multimedia 22. Interpreting functional music 23. A Tour of the PreludeList module 24. A Tour of Haskell's standard type classes.
Bis Kapitel 13 geht der Autor sehr behutsam vor, danach geht es sehr schnell mit den höheren Konzepten, das dürfte den Anfänger schnell überfordern.
Hier möchte ich gerne aus dem Vorwort zitieren:
"Aimed at both beginning and advanced programmers, this tutorial begins with a gentle introduction to functional programming, including basic ideas such as values, types, pattern matching, recursion, higher-order functions, data structures, polymorphism, abstraction, lazy evaluation, and proof by calculation. It the moves rapidly on to more advanced topics, such as infinite data structures, type classes, higher-order types, IO, monads, and inductive proofs. Details about programming in Haskell are presented in boxes throughout the text for easy reference."
Als erstes Buch zu Haskell halte ich es für zu schwierig, aber als zweites zum Thema ist es wirklich gut. Sonst muss man zum Thema Monad diverse Artikel im Internet suchen und lesen. Hier ist es konzentriert und mit interessanten Beispielen beschrieben.
Paul Hudak
2000, Cambridge University Press, 13-978-0521-64408-2, 363 Seiten
Amazon: http://www.amazon.de/Expression-Learning-Functional-Programming-Multimedia/dp/0521644089
Verlag: http://www.cambridge.org/catalogue/catalogue.asp?isbn=0521644089
PDF-Slides zum Buch und zum Kurs: http://cale.yi.org/index.php/Haskell_School_of_Expression_Lecture_Slides
Code zum Buch: http://haskell.org/soe Programme und Anleitungen für Mac OS X, Linux und Windows. Slides für Vorträge ( http://www.haskell.org/soe/powerpoi.htm ), Errata, etc. alles ist da.
Monad Tutorials: http://koweycode.blogspot.com/2007/08/history-of-monad-tutorials.html
Haskell, funktionale Programmierung, Monad, higher order types, functor
03-Dec-2006