P. Wadler. Proceedings of the 1990 ACM Conference on LISP and Functional Programming, page 61--78. New York, NY, USA, ACM, (1990)
DOI: 10.1145/91556.91592
Abstract
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.
%0 Conference Paper
%1 citeulike:2581741
%A Wadler, Philip
%B Proceedings of the 1990 ACM Conference on LISP and Functional Programming
%C New York, NY, USA
%D 1990
%I ACM
%K functional-programming haskell
%P 61--78
%R 10.1145/91556.91592
%T Comprehending Monads
%U http://dx.doi.org/10.1145/91556.91592
%X 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.
%@ 0-89791-368-X
@inproceedings{citeulike:2581741,
abstract = {{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.}},
added-at = {2019-06-18T20:47:03.000+0200},
address = {New York, NY, USA},
author = {Wadler, Philip},
biburl = {https://www.bibsonomy.org/bibtex/2cfb1c85b0792872f54d3a1cb21f50c31/alexv},
booktitle = {Proceedings of the 1990 ACM Conference on LISP and Functional Programming},
citeulike-article-id = {2581741},
citeulike-linkout-0 = {http://portal.acm.org/citation.cfm?id=91556.91592},
citeulike-linkout-1 = {http://dx.doi.org/10.1145/91556.91592},
doi = {10.1145/91556.91592},
interhash = {ae059fdcb5070484cfe771cf75bfb4c7},
intrahash = {cfb1c85b0792872f54d3a1cb21f50c31},
isbn = {0-89791-368-X},
keywords = {functional-programming haskell},
location = {Nice, France},
pages = {61--78},
posted-at = {2017-05-12 22:03:20},
priority = {2},
publisher = {ACM},
series = {LFP '90},
timestamp = {2019-08-24T00:12:44.000+0200},
title = {{Comprehending Monads}},
url = {http://dx.doi.org/10.1145/91556.91592},
year = 1990
}