Results 1 -
2 of
2
Comprehending Monads
- Mathematical Structures in Computer Science
, 1992
"... Category theorists invented monads in the 1960's to concisely express certain aspects of universal algebra. Functional programmers invented list comprehensions in the 1970's to concisely express certain programs involving lists. This paper shows how list comprehensions may be generalised to an arbit ..."
Abstract
-
Cited by 418 (11 self)
- Add to MetaCart
Category theorists invented monads in the 1960's to concisely express certain aspects of universal algebra. Functional programmers invented list comprehensions in the 1970's to concisely express certain programs involving lists. This paper shows how list comprehensions may be generalised to an arbitrary monad, and how the resulting programming feature can concisely express in a pure functional language some programs that manipulate state, handle exceptions, parse text, or invoke continuations. A new solution to the old problem of destructive array update is also presented. No knowledge of category theory is assumed.
A Functional Theory of Local Names
, 1994
"... ## is an extension of the #-calculus with a binding construct for local names. The extension has properties analogous to classical #-calculus and preserves all observational equivalences of #. It is useful as a basis for modeling wide-spectrum languages that build on a functional core. 1 Introducti ..."
Abstract
-
Cited by 27 (2 self)
- Add to MetaCart
## is an extension of the #-calculus with a binding construct for local names. The extension has properties analogous to classical #-calculus and preserves all observational equivalences of #. It is useful as a basis for modeling wide-spectrum languages that build on a functional core. 1 Introduction Recentyears have given us a good deal of theoretical research on the interaction of imperative programming #exempli#ed byvariable assignment# and functional programming #exempli#ed by higher order functions# #3,6,19,21, 24#. The common method of all these works is to propose a #-calculus extended with imperative features and to carry out an exploration of the operational semantics of the new calculus. Based on our own experience in devising such an extended #- calculus #13#, the presentwork singles out the name, whose only observational property is its identity, as an essential componentofany such extension. We present a simple extension of the pure #-calculus with names; we showby ex...

