Abstract:
Certain programs making use of monads need to perform recursion over the values of monadic actions. Although the do-notation of Haskell provides a convenient framework for monadic programming, it lacks the generality to support such recursive bindings. In this paper, we describe an enhanced translation schema for the donotation and its integration into Haskell. The new translation allows variables to be bound recursively, provided the underlying monad comes equipped with an appropriate fixed-point operator.
Citations
|
82
|
Simple imperative polymorphism
– Wright
- 1995
|
|
66
|
Using circular programs to eliminate multiple traversals of data
– Bird
- 1984
|
|
48
|
Typing Haskell in Haskell
– Jones
- 1999
|
|
37
|
First-class polymorphism with type inference
– Jones
- 1997
|
|
35
|
Recursive monad bindings
– Erkok, Launchbury
|
|
35
|
Report on the Programming Language Haskell 98, a Non-strict, Purely Functional Language. Available from http://www.haskell.org
– Jones, Hughes
- 1999
|
|
30
|
On embedding a microarchitectural design language within Haskell
– LAUNCHBURY, LEWIS, et al.
|
|
26
|
A new notation for arrows
– Paterson
- 2001
|
|
25
|
Microprocessor specification in Hawk
– Matthews, Launchbury, et al.
- 1998
|
|
21
|
Reactive Objects and Functional Programming
– Nordlander
- 1999
|
|
14
|
Embedded Languages for Describing and Verifying Hardware
– Claessen
- 2001
|
|
6
|
Value Recursion in Monadic Computations
– ERKÖK
- 2002
|
|
5
|
Semantics of fixIO
– Erkök, Launchbury, et al.
- 2001
|
|
4
|
Traced premonoidal categories (Extended Abstract
– BENTON, HYLAND
- 2002
|
|
3
|
An exercise in polytypic program derivation: repmin. Unpublished manuscript. URL: web.comlab.ox. ac.uk/oucl/work/oege.demoor/pubs.htm
– MOOR
- 1996
|
|
3
|
A recursive do for Haskell: Design and implementation
– ERKÖK, LAUNCHBURY
- 2000
|
|
2
|
Global variables in Haskell. Draft paper. URL: www.cs.chalmers.se/~rjmh/Globals.ps
– HUGHES
|
|
2
|
Users Gofer System) web page. URL: www. haskell.org/hugs
– Hugs
|