Generalising monads to arrows. Hughes, J. *Science of Computer Programming*, 37(1):67–111, May, 2000. ZSCC: 0000592Paper doi abstract bibtex Monads have become very popular for structuring functional programs since Wadler introduced their use in 1990. In particular, libraries of combinators are often based on a monadic type. Such libraries share (in part) a common interface, from which numerous benefits flow, such as the possibility to write generic code which works together with any library. But, several interesting and useful libraries are fundamentally incompatible with the monadic interface. In this paper I propose a generalisation of monads, which I call arrows, with significantly wider applicability. The paper shows how many of the techniques of monadic programming generalise to the new setting, and gives examples to show that the greater generality is useful. In particular, three non-monadic libraries for efficient parsing, building graphical user interfaces, and programming active web pages fit naturally into the new framework.

@article{hughes_generalising_2000,
title = {Generalising monads to arrows},
volume = {37},
issn = {0167-6423},
url = {http://www.sciencedirect.com/science/article/pii/S0167642399000234},
doi = {10/bb9mbs},
abstract = {Monads have become very popular for structuring functional programs since Wadler introduced their use in 1990. In particular, libraries of combinators are often based on a monadic type. Such libraries share (in part) a common interface, from which numerous benefits flow, such as the possibility to write generic code which works together with any library. But, several interesting and useful libraries are fundamentally incompatible with the monadic interface. In this paper I propose a generalisation of monads, which I call arrows, with significantly wider applicability. The paper shows how many of the techniques of monadic programming generalise to the new setting, and gives examples to show that the greater generality is useful. In particular, three non-monadic libraries for efficient parsing, building graphical user interfaces, and programming active web pages fit naturally into the new framework.},
language = {en},
number = {1},
urldate = {2020-02-01},
journal = {Science of Computer Programming},
author = {Hughes, John},
month = may,
year = {2000},
note = {ZSCC: 0000592},
pages = {67--111}
}

Downloads: 0

{"_id":"to3dxDWN8doihtQbp","bibbaseid":"hughes-generalisingmonadstoarrows-2000","authorIDs":[],"author_short":["Hughes, J."],"bibdata":{"bibtype":"article","type":"article","title":"Generalising monads to arrows","volume":"37","issn":"0167-6423","url":"http://www.sciencedirect.com/science/article/pii/S0167642399000234","doi":"10/bb9mbs","abstract":"Monads have become very popular for structuring functional programs since Wadler introduced their use in 1990. In particular, libraries of combinators are often based on a monadic type. Such libraries share (in part) a common interface, from which numerous benefits flow, such as the possibility to write generic code which works together with any library. But, several interesting and useful libraries are fundamentally incompatible with the monadic interface. In this paper I propose a generalisation of monads, which I call arrows, with significantly wider applicability. The paper shows how many of the techniques of monadic programming generalise to the new setting, and gives examples to show that the greater generality is useful. In particular, three non-monadic libraries for efficient parsing, building graphical user interfaces, and programming active web pages fit naturally into the new framework.","language":"en","number":"1","urldate":"2020-02-01","journal":"Science of Computer Programming","author":[{"propositions":[],"lastnames":["Hughes"],"firstnames":["John"],"suffixes":[]}],"month":"May","year":"2000","note":"ZSCC: 0000592","pages":"67–111","bibtex":"@article{hughes_generalising_2000,\n\ttitle = {Generalising monads to arrows},\n\tvolume = {37},\n\tissn = {0167-6423},\n\turl = {http://www.sciencedirect.com/science/article/pii/S0167642399000234},\n\tdoi = {10/bb9mbs},\n\tabstract = {Monads have become very popular for structuring functional programs since Wadler introduced their use in 1990. In particular, libraries of combinators are often based on a monadic type. Such libraries share (in part) a common interface, from which numerous benefits flow, such as the possibility to write generic code which works together with any library. But, several interesting and useful libraries are fundamentally incompatible with the monadic interface. In this paper I propose a generalisation of monads, which I call arrows, with significantly wider applicability. The paper shows how many of the techniques of monadic programming generalise to the new setting, and gives examples to show that the greater generality is useful. In particular, three non-monadic libraries for efficient parsing, building graphical user interfaces, and programming active web pages fit naturally into the new framework.},\n\tlanguage = {en},\n\tnumber = {1},\n\turldate = {2020-02-01},\n\tjournal = {Science of Computer Programming},\n\tauthor = {Hughes, John},\n\tmonth = may,\n\tyear = {2000},\n\tnote = {ZSCC: 0000592},\n\tpages = {67--111}\n}\n\n","author_short":["Hughes, J."],"key":"hughes_generalising_2000","id":"hughes_generalising_2000","bibbaseid":"hughes-generalisingmonadstoarrows-2000","role":"author","urls":{"Paper":"http://www.sciencedirect.com/science/article/pii/S0167642399000234"},"downloads":0},"bibtype":"article","biburl":"https://bibbase.org/zotero/k4rtik","creationDate":"2020-05-31T17:07:11.570Z","downloads":0,"keywords":[],"search_terms":["generalising","monads","arrows","hughes"],"title":"Generalising monads to arrows","year":2000,"dataSources":["Z5Dp3qAJiMzxtvKMq"]}