Difference between revisions of "Yampa"

From HaskellWiki
Jump to: navigation, search
(Introduction: replace lambdor.net links with archive.org)
m (Introduction)
 
(3 intermediate revisions by the same user not shown)
Line 17: Line 17:
 
** [http://www.cs.nott.ac.uk/~psznhn/ITU-FRP2010/LectureNotes/lecture07.pdf ITU-FRP2010 07]
 
** [http://www.cs.nott.ac.uk/~psznhn/ITU-FRP2010/LectureNotes/lecture07.pdf ITU-FRP2010 07]
 
* [http://www.cs.yale.edu/homes/hudak/CS429F04/LectureSlides/YampaForCs429.ppt Paul Hudak - Yampa, Arrows, and Robots]
 
* [http://www.cs.yale.edu/homes/hudak/CS429F04/LectureSlides/YampaForCs429.ppt Paul Hudak - Yampa, Arrows, and Robots]
* Yampa tutorials by [http://lambdor.net Gerold Meisinger]
+
* Yampa tutorials by Gerold Meisinger
** [https://web.archive.org/web/20100822210238/http://lambdor.net/?p=34 Running primitive signal functions in Yampa]
+
** [https://lambdor-net.readthedocs.io/learn.html Learning Yampa and Functional Reactive Programming] [https://web.archive.org/web/20100823084116/http://lambdor.net/?p=44 (archived)]
** [https://web.archive.org/web/20100823084125/http://lambdor.net/?p=59 Yampa/SDL program stub]
+
** [https://lambdor-net.readthedocs.io/embed.html Running primitive signal functions in Yampa] [https://web.archive.org/web/20100822210238/http://lambdor.net/?p=34 (archived)]
** [https://web.archive.org/web/20100823084116/http://lambdor.net/?p=44 Learning Yampa and Functional Reactive Programming]
+
** [https://lambdor-net.readthedocs.io/sdlstub.html Yampa/SDL program stub] [https://web.archive.org/web/20100823084125/http://lambdor.net/?p=59 (archived)]
  +
** [https://lambdor-net.readthedocs.io/dataflow.html Dataflow diagram of Yampa reactimate] [https://web.archive.org/web/20100822074057/http://lambdor.net/?p=117 (archived)]
  +
** [https://lambdor-net.readthedocs.io/activity.html Activity diagram of Yampa reactimate] [https://web.archive.org/web/20100822074010/http://lambdor.net/?p=113 (archived)]
 
** [https://web.archive.org/web/20101008051015/http://lambdor.net/?p=209 Diagrams of Yampa switches]
 
** [https://web.archive.org/web/20101008051015/http://lambdor.net/?p=209 Diagrams of Yampa switches]
** [https://web.archive.org/web/20100822074057/http://lambdor.net/?p=117 Dataflow diagram of Yampa reactimate]
 
  +
* [http://yampa-book.rtfd.io Yampa book - Tutorial series for BearRiver Yampa]
** [https://web.archive.org/web/20100822074010/http://lambdor.net/?p=113 Activity diagram of Yampa reactimate]
 
 
* library reference sheet: [https://svn.code.sf.net/p/frvr/code/AFRP/trunk/src/foo.ps ps], [http://lambdor.net/wp-content/uploads/2010/12/AFRP-Reference.pdf pdf]
* References: [https://svn.code.sf.net/p/frvr/code/AFRP/trunk/src/foo.ps ps], [http://lambdor.net/wp-content/uploads/2010/12/AFRP-Reference.pdf pdf]
 
 
* Videos
 
* Videos
 
** [https://vimeo.com/6632457 Safe Functional Reactive Programming through Dependent Types]
 
** [https://vimeo.com/6632457 Safe Functional Reactive Programming through Dependent Types]
Line 37: Line 36:
   
 
== Switches ==
 
== Switches ==
  +
  +
[https://www.reddit.com/r/haskell/comments/3jqfh7/comment/curnksm/?utm_source=reddit&utm_medium=web2x&context=3 Reddit - How to read Yampa diagram?]
   
 
* [[Yampa/switch|switch]]
 
* [[Yampa/switch|switch]]

Latest revision as of 13:19, 13 October 2021

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

Reddit - How to read Yampa diagram?

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 or a Kinect.
  • Magic Cookies! An iOS/Android board game implemented in Haskell using Yampa and SDL2.

search Github

Known forks