Papers, tutorials, and lecture notes as indicated for each session. But Hughes [Hug89] is a classic, and [HPF] and [Lip] are both good, albeit very different, tutorials. There are also a number of books on Haskell and functional programming that you may find useful. Some examples:
Programming in Haskell [Hut07] by Graham Hutton is a good beginner's book on Haskell, although aimed at first-year undergraduates. |
|
Purely Functional Data Structures [Oka98] by Chris Okasaki is a great book on data structures in a purely functional setting, and how to employ both lazy and strict evaluation to get the right complexity bounds. Moreover, as purely functional data structures are persistent, which is a very useful property in its own right, the utility of the presented material goes well beyond functional programming. |
|
Real World Haskell [SGS09] by Bryan O'Sullivan, John Goerzen, and Don Stewart covers everything you need to know for serious Haskell development. |
Wondering how to debug your Haskell programs? Well, there are a number of options. One possibility, while it has certain drawbacks, is the traditional, procedural debugger integrated in GHCi 6.8.1 or later. You can read more about it in Bernie Pope's article in issue 10 of the Monad.Reader [POP08].
This is a somewhat tentative overview of the Lectures (L) and Practicals (P). In particular, end times are approximate: some lectures may be a bit shorter.
Session | Time | Content | Reading/Material |
---|---|---|---|
L1 | 9:30--10:30 | Introduction, Classic FRP (CFRP) | Slides: on screen,
4up,
9up
[WH00] |
L2 | 10:45--11:45 | CFRP and Semantics | (as above) |
P1 | 13:00--14:00 | DIY FRP | [WH00] Exercises Source code |
P2 | 14:15--15:15 | DIY FRP | (as above) |
P3 | 14:15--15:15 | DIY FRP | (as above) |
L3 | 9:30--10:30 | Yampa: Arrows-based FRP | Slides: on screen,
4up,
9up
[NCP02] |
L4 | 10:45--11:45 | Yampa: Arrows-based FRP | (as above) |
L5 | 13:00--14:00 | Yampa: Arrows-based FRP | (as above) |
P4 | 14:15--15:15 | Yampa basics | [NCP02] Exercises |
P5 | 15:30--16:40 | Yampa basics | (as above) |
L6 | 10:45--11:45 | YFrob: Functional Reactive Robotics | Slides: on screen,
4up,
9up
[HCNP02] |
P6 | 13:00--14:00 | Robot programming | [HCNP02]
YFrob 0.4 (.tar.gz) (See YFrob slides for installation instructions.) |
P7 | 14:15--15:15 | Robot programming | (as above) |
L7 | 15:30--16:30 | FRP and Highly Dynamic System Structure | Slides: on screen,
4up,
9up
[NCP02] [CNP03] |
L8 | 9:30--10:30 | The Yampa Implementation | Slides: on screen,
4up,
9up
[Nil05] |
L9 | 10:45--11:45 | Switched-on Yampa | Slides: on screen,
4up,
9up
[GN08] |
P8 | 13:00--14:00 | Robot and/or video games programming | |
P9 | 14:15--15:15 | Robot and/or video games programming | |
P10 | 15:30--16:30 | YRSC 2010 | |
L10 | 9:30--10:30 | Functional Hybrid Modelling (FHM) | Slides: on screen, 4up, 9up |
L11 | 10:45--11:45 | FHM/Discussions/Wrap Up |