- 11 January 2013 (Friday), 2pm-6pm, M001
- 12 January 2013 (Saturday), 11am-3pm, M 001
This block course will provide a non-trivial introduction to functional programming in Haskell. The introduction is also useful for those who are interested in functional programming more broadly or in other specific functional programming languages such as F#, OCaml, or Scala. The course will cover all the basic of functional programming such as functions, datatypes, recursion, pattern matching, higher-order functions, and polymorphism, but it will also drill into slightly more advanced territory such as parser combinators, generic programming, type-class polymorphism, algebraic structures, equational reasoning, and applications to language processing.
Attendees are supposed to be fluent in some modern programming language and to be somewhat aware of the basics of functional programming (such as the basic notion of functions in the lambda calculus). Usually, those basics would have been provided in courses such as introduction to CS, programming techniques and technologies, and programming language theory.
- Bring your laptop.
- Install Haskell platform: http://www.haskell.org/platform/
- Download 101haskell repository:
- preferred: git clone git://github.com/101companies/101haskell.git
- alternative: download https://github.com/101companies/101haskell/archive/master.zip
- BSc CS students pass this block course as part of "programming paradigms".
- Guests welcome.
- Slides: (.pdf)
- Code including on-stage coding.
- Wiki content:
- "Programming in Haskell" by Graham Hutton. Cambridge University Press, 2007. Information available online. Some physical copies available in the local library.
- "Learn You a Haskell for Great Good" by Miran Lipovača. no starch press, 2011. Information available online including the book in some format.