Home
Hi, my name is Heinrich Apfelmus, and these pages are about my work with the programming language Haskell.
I write introductory tutorials and articles on Haskell. The Incomplete Guide to Lazy Evaluation may be particularly useful if you are learning the language and want to understand lazy evaluation.
My blog covers news and announcements, but also longer articles.
My open source work explores and combines several themes:
- Graphical user interfaces (GUI). I think that Haskell has the potential to surpass traditional mainstream languages when it comes to programming graphics and user interaction.
- Threepenny-GUI is a GUI framework that uses the web browser as a display.
- Reactive Banana is a library for functional reactive programming (FRP), a declarative programming paradigm for expressing how things change over time. This greatly simplifies GUI programming.
- HyperHaskell is a Haskell interpreter with a worksheet interface and graphical output. I think that graphics should become part of the programming experience.
- Music and live coding
- cnoidal is a library for temporal media, a data structure for representing music. It can be used with HyperHaskell for live coding music.
- david-cope-cmmc mirrors the source code for the book “Computer Models of Musical Creativity”, written by David Cope, who is a classical composer that has written software that analyzes, recombines, and creates classical music. (Not in Haskell.)