Without adding any primitives to the language, we define a concurrency monad transformer in Haskell. This allows us to add a limited form of concurrency to any existing monad. The atomic actions of the new monad are lifted actions of the underlying monad. Some extra operations, such as fork , to initiate new processes, are provided. We discuss the implementation, and use some examples to illustrate the usefulness of this construction.
%0 Journal Article
%1 citeulike:4742795
%A Claessen, Koen
%D 1999
%K haskell
%T Functional Pearls: A Poor Man's Concurrency Monad
%U http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.8039
%X Without adding any primitives to the language, we define a concurrency monad transformer in Haskell. This allows us to add a limited form of concurrency to any existing monad. The atomic actions of the new monad are lifted actions of the underlying monad. Some extra operations, such as fork , to initiate new processes, are provided. We discuss the implementation, and use some examples to illustrate the usefulness of this construction.
@article{citeulike:4742795,
abstract = {{Without adding any primitives to the language, we define a concurrency monad transformer in Haskell. This allows us to add a limited form of concurrency to any existing monad. The atomic actions of the new monad are lifted actions of the underlying monad. Some extra operations, such as fork , to initiate new processes, are provided. We discuss the implementation, and use some examples to illustrate the usefulness of this construction.}},
added-at = {2019-06-18T20:47:03.000+0200},
author = {Claessen, Koen},
biburl = {https://www.bibsonomy.org/bibtex/284950afc71584af261b1f1b17720136c/alexv},
citeulike-article-id = {4742795},
citeulike-linkout-0 = {http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.8039},
interhash = {a08a806c9f99c86c283642d945056707},
intrahash = {84950afc71584af261b1f1b17720136c},
keywords = {haskell},
posted-at = {2015-12-15 02:30:18},
priority = {0},
timestamp = {2019-06-18T20:47:03.000+0200},
title = {{Functional Pearls: A Poor Man's Concurrency Monad}},
url = {http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.8039},
year = 1999
}