Finding the Fun in Functional Programming

The Yale Haskell Group has played an integral role in the conception, evolution, implementation, and application of the Haskell programming language. We have helped to write the Haskell Report, a tutorial on Haskell, and a popular textbook: The Haskell School of Expression (SOE).

Today the focus of our group is not only on advancing Haskell, but also on using it in interesting ways in research, education, and the real world. Most notably, we have used Haskell to construct a variety of domain-specific embedded languages (DSELs): languages that use Haskell as a framework within which to build abstractions specific to an underlying domain.

Many of our DSELs are based on a programming paradigm that we call Functional Reactive Programming, or FRP.  We have used FRP as a basis for DSELs in animation (Fran), robotics (Frob), computer vision (FVision), graphical user interfaces (Fruit), parallel programming (HPorter), networking (Nettle) and computer music (Euterpea).  We have also developed an arrow-based version of FRP called Yampa, and most of our latest DSEL’s are based on Yampa concepts.

There are two primary DSEL’s that we are currently focusing on:

  1. Euterpea, a language that combines low-level audio processing and sound synthesis capabilities, with high-level computer music concepts.  Euterpea is a central component of the Music Track in Yale’s new Computing and the Arts major, which is in turn part of a larger initiative called Yale C2 (Creative Consilience of Computing and the Arts).
  2. Nettle, a language for configuring OpenFlow network routers in a high-level, declarative manner.

Acknowledgments

The Yale Haskell Group wishes to acknowledge the generous support of its funding agencies, including the National Science Foundation (NSF), the Defense Advanced Research Projects Agency (DARPA), and Microsoft Research.

Comments are closed.