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.)