7pm: Functional Reactive Programming for Musical User Interfaces



Paul Hudak

Yale University



Paul Hudak[1] was one of the principal designers of Haskell language. He is currently authoring the book "The Haskell School of Music -- From Signals to Symphonies"[2], and is one of the founders of the Computing and the Arts program at Yale[3]. His talk will introduce Functional Reactive Programming (FRP), a programming paradigm that supports the notion of continuous time-varying values, as well as streams of discrete events. It will describe one version of FRP in Haskell, focusing on its use not only in graphical user interfaces, but "musical user interfaces" for controlling computer music applications.



The work he will describe lets us “reify” real-world objects, allowing things like keyboards, soundcards, and so on, to be represented as signal functions. To make this idea safe, “resource types” are introduced that constrain the use of these devices. Finally, the question is posed, “what is an effect in FRP?” One answer is “wormholes,” a form of non-local communication between signal functions, in which values are sent into a blackhole, and magically received at the other end from a whitehole.



The work he is presenting has been done jointly with Daniel Winograd-Cort[4].



[1] http://haskell.cs.yale.edu/people/paul-hudak/

[2] http://haskell.cs.yale.edu/?post_type=publication&p=112

[3] http://cs.yale.edu/c2/

[4] http://danwc.com/publications