%TOC% ---++ Obligatory Reading ---+++ During the course * [[http://www.haskell.org/onlinereport/][The Haskell Language Report]] Besides the Language Definition there is also a description of the standard libraries. * [[http://www.haskell.org/ghc/][<nop>Glasgow Haskell Compiler</nop>]], and Haskell extensions; The GHC (Glasgow/Glorious Haskell Compiler) is currently the compiler of choice for writing real Haskell programs. The compiler supports many extensions and options, and is extensively documented. All students are supposed to go over this documentation in order to get an overview of what are the possibilities when using this programming environment. #ReadingOne ---+++ Associated with specific lectures (1) * [[http://www.cs.chalmers.se/~rjmh/Papers/whyfp.html][John Hughes: Why Functional programming Matters]] is the classical introduction to why one should want to write programs in a lazy functional language. * [[http://www.cs.uu.nl/docs/vakken/afp/Literature/dsel-hudak.pdf][Paul Hudak: Domain Specific Languages]] is a tutorial that providesa nice overview of several different combinator languages and why they were designed in the way the were. ---+++ Some references to papers for future lectures (yet incomplete/depending on subjects chosen) * [[http://research.microsoft.com/~simonpj/papers/meta-haskell/][Template Meta Programming]] by Simon Peyton Jones * [[http://www.cs.uu.nl/docs/vakken/afp/Literature/LL1.pdf][Fast, Error Correcting Parser Combinators]] * [[http://www.cs.uu.nl/docs/vakken/afp/Literature/p224-swierstra.pdf][Polish Parsers, Step by Step]] ---++ Useful links you may want to have a look at * [[http://www.haskell.org][The Haskell home page]] contains numerous links to groups, projects, people, literature, software etc. * [[http://www.willamette.edu/~fruehr/logos/intro.html][Logos]] contains pictures you might want to use for "brightening up" your presentation ---+++ Conferences There are a couple of important conferences in the area of functional programming, amongst which: * [[http://www.math.luc.edu/icfp/][International Conference onFunctional Programming (ACM)]], with its [[http://portal.acm.org/dl.cfm][proceedings]] * [[http://www.macs.hw.ac.uk/~ifl03/][IFL]], of which the proceedings are published in the LNCS series. * [[http://portal.acm.org/dl.cfm][POPL: Annual Symposium on Principles of Programming Languages]] * [[http://portal.acm.org/dl.cfm][PPDP: International Conference on Principles and Practice of Declarative Programming]] * [[http://portal.acm.org/dl.cfm][Haskell Workhop]] ---+++ Other Functional Languages * [[http://www.cs.kun.nl/~clean/][Clean]], a very efficient lazy implemented functional language from Dutch origin. * [[http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/fox/mosaic/sml.html][ML]] is the standard, statically typed, non-lazy functional language ---+++ Summer Schools on [[http://www.cs.uu.nl/~johanj/afp/][Advanced Functional programming]] Over the years we have organised a sequence of Summer Schools on advanced Functional programming, of which the proceedings have been published by Springer in their LNCS series: * First International Spring School on Advanced Functional Programming Techniques, Bastad, Sweden, LNCS 925, Springer-Verlag, 1995 (editors: J. Jeuring, E. Meijer). * Functional Parsers by Jeroen Fokker, p. 1-23. * Monads for functional programming by Philip Wadler, p. 24-52. * The Design of a Pretty-printing Library by John Hughes, p. 52-96. * Functional Programming with Overloading and Higher-Order Polymorphism , Mark P. Jones, p. 97-136. * Programming with Fudgets by Thomas Hallgren and Magnus Carlsson, p. 137-182. * Constructing Medium Sized Efficient Functional Programs in Clean by Marko C.J.D. van Eekelen and Rinus J. Plasmeijer, p. 183-227. * Merging Monads and Folds for Functional Programming by Erik Meijer and Johan Jeuring, p. 228-266. * Programming with Algebras by Richard B. Kieburtz and Jeffrey Lewis, p. 267-307. * Graph Algorithms with a Functional Flavour by John Launchbury, p. 308-331. * Advanced Functional Programming , Second International Summer School on Advanced Functional Programming Techniques, Evergreen State College, WA, USA, LNCS 1126, Springer-Verlag, 1996 (editors: J. Launchbury, E. Meijer, T. Sheard). * Composing the User Interface with Haggis by Sigbjorn Finne and Simon Peyton Jones, p. 1-37. * Haskore Music Tutorial by Paul Hudak, p. 38-67. * Polytypic Programming by Johan Jeuring and Patrick Jansson, p. 68-114. * Implementing Threads in Standard ML by Peter Lee, p. 115-130. * Functional Data Structures by Chris Okasaki, p. 131-158. * Heap Profiling for Space Efficiency by Colin Runciman and Niklas Röjemo, p. 159-183. * Deterministic, Error-Correcting Combinator Parsers by S. Doaitse Swierstra and Luc Duponcheel, p. 184-207. * Essentials of Standard ML Modules by Mads Tofte, p. 208-238. * Advanced Functional Programming, Third International School, [[http://www.di.uminho.pt/afp98/][AFP'98]] , in Braga, Portugal from 12th to 19th September 1998, LNCS 1608, Springer-Verlag, 1999 (editors: D. Swierstra, P. Henriques and J. Oliveira). * Sorting Morphisms ,Lex Augusteijn (Philips Research Laboratories, the Netherlands) * Generic Programs - An Introduction - ,Roland Backhouse (Eindhoven University) and Patrik Jansson (Chalmers University of Technology) and Johan Jeuring (Utrecht University) and Lambert Meertens (CWI and Utrecht University) * Designing and Implementing Combinator Languages ,Doaitse Swierstra (Utrecht University) and Pablo Azero (Utrecht University) and Joao Saraiva (Utrecht and Minho University) * Functional Scripting ,Erik Meijer and Daan Leijen (Utrecht University) * CAYENNE - A Language With Dependent Types ,Lennart Augustsson (Chalmers University of Technology) * Generic Program Transformation ,Oege de Moor and Ganesh Sittampalan (Oxford University) * Using MetaML: A Staged Programming Language, Tim Sheard (Oregon Graduate Institute) * Advanced Functional Programming, Fourth International School, [[http://www.cs.uu.nl/~johanj/afp/afp4/][AFP'02]], in Oxford, UK from 19th to 24h August 2002, LNCS 2638, Springer-Verlag, 2003 (editors: Johan T. Jeuring, Simon Peyton Jones).