Yampa is a domain-specific embedded language for the programming of hybrid (discrete and continious) systems using the concepts of Functional Reactive Programming (FRP). Yampa is structured using Arrows, which greatly reduce the chance of introducing space- and time-leaks into reactive, time-varying systems.
Yampa was originally developed by the Yale Haskell Group.
- Henrik Nilsson - A Brief Introduction to Functional Reactive Programming and Yampa
- Henrik Nilsson - ITU-FRP2010
- Paul Hudak - Yampa, Arrows, and Robots
- Yampa tutorials by Gerold Meisinger
- References: ps, pdf
2 Primitive signal functions
(download original Image:Yampa signal functions.svg)
4 External Links
- Yampa-Users mailing list - Yampa-related comments, questions, discussions, and announcements. You can also send bug reports to firstname.lastname@example.org.
- George Giorgidze created YampaSynth, a modular music synthesizer written in Haskell and using Yampa.
- Blog about Yampa - introduction tutorials and diagrams
- Demonstrating a Time Leak in Arrowized FRP
5 Known users
- YampaSynth - is a software synthesizer implemented in Haskell using Yampa. It contains a framework of sound generating and sound shaping modules (e.g. oscillator, amplifier, mixer, envelope generator, filter, etc.) and example applications.
- Space Invaders; a video game, demonstrating the usage of Yampa
- Nettle - Programming Network Routers
- Euterpea - computer music development (also uses CCA)
6 Known forks
- code cleanup
- Facts and Theories blog by Edward Amsden
- restructuring of modules
- DIVE project
- Kristopher J. Blom - Dynamic, Interactive Virtual Environments section 8.3