Difference between revisions of "Arrow"
EndreyMark (talk | contribs) m (Using {{Standard class ...}} template for arrows) |
EndreyMark (talk | contribs) (Better structure and more links) |
||
Line 16: | Line 16: | ||
=== Parser === |
=== Parser === |
||
+ | |||
+ | The reasons why the arrow concept can solve important questions when designing a parser library are explained in [http://www.haskell.org/arrows/biblio.html Generalising Monads to Arrows] written by [http://www.cs.chalmers.se/~rjmh/ John Hughes]. |
||
A good example of the mentioned arrow parsers can be seen in [http://www.soi.city.ac.uk/~ross/papers/notation.html A New Notation for Arrows] written by [http://www.soi.city.ac.uk/%7Eross/ Ross Peterson]: figure 2, 4, 6 (page 3, 5, 6). |
A good example of the mentioned arrow parsers can be seen in [http://www.soi.city.ac.uk/~ross/papers/notation.html A New Notation for Arrows] written by [http://www.soi.city.ac.uk/%7Eross/ Ross Peterson]: figure 2, 4, 6 (page 3, 5, 6). |
||
Line 23: | Line 25: | ||
=== Stream processor === |
=== Stream processor === |
||
+ | The [http://homepages.cwi.nl/~tromp/cl/lazy-k.html Lazy K programming language] is an interesing esoteric language (from the family purely functional languages), whose I/O concept is approached by streams. |
||
− | ==== IO-like things ==== |
||
+ | |||
+ | ==== Functional I/O, graphical user interfaces ==== |
||
+ | [http://citeseer.ist.psu.edu/hudak89expressiveness.html On the Expressiveness of Purely Functional I/O Systems] written by Paul Hudak and Raman S. Sundaresh. |
||
− | ===== ===== |
||
+ | [http://www.cs.chalmers.se/Cs/Research/Functional/Fudgets/ Fudgets] written by [http://www.cs.chalmers.se/~hallgren/ Thomas Hallgren] and [http://www.cs.chalmers.se/~magnus/ Magnus Carlsson]. |
||
− | ===== Fudgets ===== |
||
==== Dataflow languages ==== |
==== Dataflow languages ==== |
Revision as of 17:21, 11 June 2006
import Control.Arrow |
Introduction
Arrows: A General Interface to Computation written by Ross Peterson.
HaWiki's UnderstandingArrows.
Monad.Reader's ArrowsIntroduction article.
See also Research papers/Monads and arrows.
Examples
Parser
The reasons why the arrow concept can solve important questions when designing a parser library are explained in Generalising Monads to Arrows written by John Hughes.
A good example of the mentioned arrow parsers can be seen in A New Notation for Arrows written by Ross Peterson: figure 2, 4, 6 (page 3, 5, 6).
An implementation: PArrows written by Einar Karttunen.
Stream processor
The Lazy K programming language is an interesing esoteric language (from the family purely functional languages), whose I/O concept is approached by streams.
Functional I/O, graphical user interfaces
On the Expressiveness of Purely Functional I/O Systems written by Paul Hudak and Raman S. Sundaresh.
Fudgets written by Thomas Hallgren and Magnus Carlsson.
Dataflow languages
Arrows and Computation written by Ross Paterson mentions how to mimick dataflow programming in (lazy) functional languages. See more on Lucid's own HaskellWiki page: Lucid.