Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
courses:pfl080-en [2007/03/30 14:59] ufal |
courses:pfl080-en [2007/05/17 20:57] ufal |
| |
===== Annotation ===== | ===== Annotation ===== |
| |
| [[http://www.haskell.org/|Haskell]] is a purely functional programming language. Its study invites to exploring the connections between various areas of computer science, logic, and linguistics. Haskell is also a modern means for describing the solutions of general problems in a precise, yet concise and comrehensible way. |
| |
| The lecture will be devoted to the characteristic features of the language, and we will meet them applied in the context of domain-specific languages. In the seminar, students will discuss their understanding of selected research papers. |
| |
| |
| |
===== References ===== | ===== References ===== |
| |
| * Hal Daumé III. 2002--2006. //[[http://www.cs.utah.edu/~hal/docs/daume02yaht.pdf|Yet Another Haskell Tutorial]]//. |
| * Paul Hudak. 2000. //The Haskell School of Expression: Learning Functional Programming through Multimedia//. Cambridge University Press. |
| * Paul Hudak, John Peterson, Joseph Fasel. 2000. //[[http://www.haskell.org/tutorial/|A Gentle Introduction to Haskell]]//. |
| * John Hughes. 1984. //[[http://www.cs.chalmers.se/~rjmh/Papers/whyfp.html|Why Functional Programming Matters]]//. |
| |
| * Richard A. Frost. 2006. //[[http://portal.acm.org/citation.cfm?id=1177353|Realization of Natural Language Interfaces Using Lazy Functional Programming]]//. ACM Computing Surveys, Volume 38, Issue 4. |
| * Peter Ljunglof. 2002. //[[http://www.ling.gu.se/~peb/pubs/p02-lic-thesis.pdf|Pure Functional Parsing. An Advanced Tutorial]]//. Licenciate thesis, Goteborg University & Chalmers University of Technology. |
| * Philip Wadler. 2003. //[[http://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf|A Prettier Printer]]//. In Jeremy Gibbons and Oege de Moor, editors, //The Fun of Programming//, Cornerstones of Computing, pages 223--243. Palgrave Macmillan, March 2003. |
| |
| |
===== Syllabus ===== | ===== Syllabus ===== |
| |
| - Elementary functions and data types |
| - Computational model and lambda calculus |
| - Recursion, abstraction, higher-order functions |
| - Polymorphic types versus type classes |
| - Monads and their use |
| - Parsing and pretty-printing |
| - Domain-specific languages |
| - Related theoretical issues |
| - Useful tools for the programmer |
| |
| |
===== Links ===== | ===== Links ===== |
| |
[[http://www.cis.upenn.edu/~bcpierce/courses/advprog/index.html|Advanced programming by B. C. Pierce]] -- free inspiration for this course | [[http://www.cis.upenn.edu/~bcpierce/courses/advprog/|Advanced Programming by Benjamin C. Pierce]] -- free inspiration for this course |
| |
| [[http://www.st.cs.uni-sb.de/edu/seminare/2005/advanced-fp/|Advanced Functional Programming at Saarbrücken]] |
| |
| [[http://ufal.mff.cuni.cz/~smrz/FunnyThing/impressive-haskell.pdf|"Impressive Haskell" by Otakar Smrž]] |
| |
[[http://www.mff.cuni.cz/vnitro/is/sis/predmety/kod.php?kod=PFL080|Studijní informační systém]] | [[http://www.mff.cuni.cz/vnitro/is/sis/predmety/kod.php?kod=PFL080|Student's Information System]] |
| |