Applicative Programming with Effects
source link: https://www.staff.city.ac.uk/~ross/papers/Applicative.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Applicative Programming with Effects
Conor McBride and Ross Paterson. in Journal of Functional Programming 18:1 (2008), pages 1-13.
Abstract
In this paper, we introduce Applicative functors--an abstract characterisation of an applicative style of effectful programming, weaker than Monads and hence more widespread. Indeed, it is the ubiquity of this programming pattern that drew us to the abstraction. We retrace our steps in this paper, introducing the applicative pattern by diverse examples, then abstracting it to define the Applicative type class and introducing a bracket notation which interprets the normal application syntax in the idiom of an Applicative functor. Further, we develop the properties of applicative functors and the generic operations they support. We close by identifying the categorical structure of applicative functors and examining their relationship both with Monads and with Arrows.
Formats
gzipped PostScript, gzipped DVI, PDF.
See also
- Modules Control.Applicative, Data.Foldable and Data.Traversable in the Haskell base libraries.
- The Essence of the Iterator Pattern, Jeremy Gibbons and Bruno C. d. S. Oliveira, Journal of Functional Programming, 19, pages 377-402. July 2009.
- Constructing Applicative Functors, Ross Paterson, in Mathematics of Program Construction, Madrid, 2012, Lecture Notes in Computer Science vol. 7342, pp. 300-323, Springer, 2012.
Arrows web page, describing arrows, an even more flexible notion of computation.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK