Skip to main content
    • Aa
    • Aa

Applicative programming with effects


In this article, 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 article, introducing the applicative pattern by diverse examples, then abstracting it to define the Applicative type class and introducing a bracket notation that interprets the normal application syntax in the idiom of an Applicative functor. Furthermore, 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 Arrow.

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

D. Fridlender & M. Indrika (2000) Do we need dependent types? Journal of Functional Programming, 10 (4), 409415.

J. Hughes (2000) Generalising monads to arrows. Science of Computer Programming, 37 (1–3), 67111.

G. Hutton & E. Meijer (1998) Monadic parsing in Haskell. Journal of Functional Programming, 8 (4), 437444.

J. Power & E. Robinson (1997) Premonoidal categories and notions of computation. Mathematical Structures in Computer Science, 7 (5), 453468.

S. D. Swierstra & L. Duponcheel (1996) Deterministic, error-correcting combinator parsers. Pages 184–207 of: J. Launchbury , E. Meijer & T. Sheard (eds), Advanced Functional Programming. LNCS, vol. 1129. Springer.

P. Wadler (1985) How to replace failure by a list of successes. Pages 113–128 of: J.-P. Jouannaud (ed), Functional Programming Languages and Computer Architecture. LNCS, vol. 201. Springer.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *


Full text views

Total number of HTML views: 0
Total number of PDF views: 136 *
Loading metrics...

Abstract views

Total abstract views: 836 *
Loading metrics...

* Views captured on Cambridge Core between September 2016 - 23rd May 2017. This data will be updated every 24 hours.