Difference between revisions of "Arrow"

From HaskellWiki
Jump to navigation Jump to search
m (Using {{Standard class ...}} template for arrows)
(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

Arrow class (base)
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.