Difference between revisions of "Yampa"

From HaskellWiki
Jump to navigation Jump to search
(Updated links to Haskanoid, "Yampa, Arrows, and Robots")
(Link to "Demonstrating a Time Leak in Arrowized FRP" redirected to the Web archive; removed link to Edward Amsden's blog (dead link))
Line 62: Line 62:
 
* [http://www.thev.net/PaulLiu/#publications Hai (Paul) Liu papers and slides]
 
* [http://www.thev.net/PaulLiu/#publications Hai (Paul) Liu papers and slides]
 
* [http://lambdor.net Blog about Yampa] - introduction tutorials and diagrams
 
* [http://lambdor.net Blog about Yampa] - introduction tutorials and diagrams
* [http://blog.edwardamsden.com/2011/03/demonstrating-time-leak-in-arrowized.html Demonstrating a Time Leak in Arrowized FRP]
+
* [https://web.archive.org/web/20140820094516/http://blog.edwardamsden.com/2011/03/demonstrating-time-leak-in-arrowized.html Demonstrating a Time Leak in Arrowized FRP] (Web archive)
 
** [http://mailman.cs.yale.edu/pipermail/yampa-users/2011-April/000409.html answer]
 
** [http://mailman.cs.yale.edu/pipermail/yampa-users/2011-April/000409.html answer]
 
* [https://www.youtube.com/results?search_query=yampa+haskell An overview of Yampa video clips on YouTube]
 
* [https://www.youtube.com/results?search_query=yampa+haskell An overview of Yampa video clips on YouTube]
Line 91: Line 91:
 
* [https://github.com/eamsden/Animas Animas]
 
* [https://github.com/eamsden/Animas Animas]
 
** code cleanup
 
** code cleanup
** [http://blog.edwardamsden.com/ Facts and Theories] blog by Edward Amsden
 
 
* [http://imve.informatik.uni-hamburg.de/projects/FRVR Functional Reactive Virtual Reality]
 
* [http://imve.informatik.uni-hamburg.de/projects/FRVR Functional Reactive Virtual Reality]
 
** [https://frvr.svn.sourceforge.net/svnroot/frvr/AFRP/trunk FRVR source code]
 
** [https://frvr.svn.sourceforge.net/svnroot/frvr/AFRP/trunk FRVR source code]

Revision as of 08:58, 15 September 2015

Yampa is a domain-specific embedded language for the programming of hybrid (discrete and continuous time) 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 based on the original idea of Conal Elliott's Fran.

Hackage: Yampa

Introduction

Primitive signal functions

Yampa signal functions.png

(download original Image:Yampa signal functions.svg‎)

Switches

Each switch comes in two different flavors:

  1. immediate: switch to the new behaviour immediately and also calculate the return value based on the new behaviour.
  2. delayed: return the value based on the old behaviour, but use the new behaviour afterwards. To use delayed switch prefix the switching functions with the letter 'd', f.e. 'drpSwitchB'.

Reactimation

External Links

Known users

search Hackage

  • 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.
  • Frag; a simple Quake 3 clone, using a very early version of Yampa called arrowized functional reactive programming (AFRP)
  • SpaceInvaders; a video game, demonstrating the usage of Yampa
  • cuboid; a small puzzle game
  • Haskelloids; asteroids clone
  • Nettle - Programming Network Routers
  • Euterpea - computer music development (also uses CCA)
  • YFrob; robot simulation
  • Haskanoid A breakout-like videogame with SDL graphics and sound that can optionally be controlled with a Wiimote.

search Github

Known forks