Abstract:
It is impossible to express non-deterministic algorithms in conventional functional languages; even if such algorithms ' results are deterministic. This paper considers the introduction of bags (multisets) into functional languages. These admit a non-deterministic implementation but put an onus on the programmer to prove that they are used determinately. Usually such proofs are straightforward. Bags make some algorithms easier to write and more efficient than would otherwise be possible. An implementation of bags, based on a rewriting system is sketched. 1
Citations
|
393
|
Comprehending monads
– Wadler
- 1992
|
|
275
|
Denotational Semantics: a Methodology for Language Development
– Schmidt
- 1986
|
|
90
|
Algorithmics (towards programming as a mathematical activity
– Meertens
- 1993
|
|
89
|
M-structures: Extending a parallel, non-strict, functional language with state
– Barth, Nikhil, et al.
- 1991
|
|
83
|
Database programming in Machiavelli, a polymorphic language with static type inference
– Ohori, Buneman, et al.
- 1989
|
|
45
|
Parallel Programming using Functional Languages (Report CSC 91/R3
– Roe
- 1991
|
|
34
|
Connection machine lisp: fine-grained parallel symbolic processing
– Hillis
- 1986
|
|
28
|
Expressing and reasoning about non-deterministic functional programs
– Hughes, O'Donnell
- 1989
|
|
28
|
Improving List Comprehension Database Queries
– Trinder, Wadler
- 1989
|
|
14
|
A New Array Operation
– Wadler
- 1986
|
|
13
|
List comprehensions
– Wadler
- 1987
|
|
7
|
Lecture notes on constructive functional programming
– Bird
- 1989
|
|
6
|
Data Structures for Parallel Execution of Functional Languages
– Marino, Succi
- 1989
|
|
4
|
Chemical reaction as a computational model
– Banatre, LeM'etayer
- 1989
|
|
3
|
Applicative multiprogramming
– Friedman, Wise
- 1978
|
|
3
|
parallelism: a functional perspective (Extended Abstract
– Arrays, side-effects
- 1986
|
|
2
|
A formalism for parallel program construction and its distributed implementation
– Banatre, Coutant, et al.
- 1988
|