Skip to main content
×
Home
    • Aa
    • Aa
  • Get access
    Check if you have access via personal or institutional login
  • Cited by 41
  • Cited by
    This article has been cited by the following publications. This list is generated based on data provided by CrossRef.

    Cai, Yufei Giarrusso, Paolo G. and Ostermann, Klaus 2016. System f-omega with equirecursive types for datatype-generic programming. ACM SIGPLAN Notices, Vol. 51, Issue. 1, p. 30.


    Cai, Yufei Giarrusso, Paolo G. and Ostermann, Klaus 2016. Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - POPL 2016. p. 30.

    Lochbihler, Andreas and Schneider, Joshua 2016. Interactive Theorem Proving.


    Bizjak, Aleš and Møgelberg, Rasmus Ejlers 2015. A Model of Guarded Recursion With Clock Synchronisation. Electronic Notes in Theoretical Computer Science, Vol. 319, p. 83.


    Gill, Andy Sculthorpe, Neil Dawson, Justin Eskilson, Aleksander Farmer, Andrew Grebe, Mark Rosenbluth, Jeffrey Scott, Ryan and Stanton, James 2015. Proceedings of the 8th ACM SIGPLAN Symposium on Haskell - Haskell 2015. p. 59.

    Gill, Andy Sculthorpe, Neil Dawson, Justin Eskilson, Aleksander Farmer, Andrew Grebe, Mark Rosenbluth, Jeffrey Scott, Ryan and Stanton, James 2015. The remote monad design pattern. ACM SIGPLAN Notices, Vol. 50, Issue. 12, p. 59.


    Hu, Zhenjiang Hughes, John and Wang, Meng 2015. How functional programming mattered. National Science Review, Vol. 2, Issue. 3, p. 349.


    Kameyama, Yukiyoshi Kiselyov, Oleg and Shan, Chung-chieh 2015. Combinators for impure yet hygienic code generation. Science of Computer Programming, Vol. 112, p. 120.


    Matsuda, Kazutaka and Wang, Meng 2015. Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming - ICFP 2015. p. 62.

    Matsuda, Kazutaka and Wang, Meng 2015. “Bidirectionalization for free” for monomorphic transformations. Science of Computer Programming, Vol. 111, p. 79.


    Matsuda, Kazutaka and Wang, Meng 2015. Applicative bidirectional programming with lenses. ACM SIGPLAN Notices, Vol. 50, Issue. 9, p. 62.


    Mu, Shin-Cheng Lyu, Yu-Han and Morihata, Akimasa 2015. Approximate by thinning: Deriving fully polynomial-time approximation schemes. Science of Computer Programming, Vol. 98, p. 484.


    Paviotti, Marco Møgelberg, Rasmus Ejlers and Birkedal, Lars 2015. A Model of PCF in Guarded Type Theory. Electronic Notes in Theoretical Computer Science, Vol. 319, p. 333.


    Perez, Ivan and Nilsson, Henrik 2015. Proceedings of the 8th ACM SIGPLAN Symposium on Haskell - Haskell 2015. p. 47.

    Perez, Ivan and Nilsson, Henrik 2015. Bridging the GUI gap with reactive values and relations. ACM SIGPLAN Notices, Vol. 50, Issue. 12, p. 47.


    Ploeg, Atze van der and Claessen, Koen 2015. Practical principled FRP: forget the past, change the future, FRPNow!. ACM SIGPLAN Notices, Vol. 50, Issue. 9, p. 302.


    Ploeg, Atze van der and Claessen, Koen 2015. Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming - ICFP 2015. p. 302.

    Rivas, Exequiel Jaskelioff, Mauro and Schrijvers, Tom 2015. Proceedings of the 17th International Symposium on Principles and Practice of Declarative Programming - PPDP '15. p. 196.

    Viera, Marcos and Swierstra, S. Doaitse 2015. Compositional compiler construction: Oberon0. Science of Computer Programming, Vol. 114, p. 45.


    Yamaguchi, Hiroshi and Chiba, Shigeru 2015. Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences - GPCE 2015. p. 85.

    ×

Applicative programming with effects

  • CONOR MCBRIDE (a1) and ROSS PATERSON (a2)
  • DOI: http://dx.doi.org/10.1017/S0956796807006326
  • Published online: 01 January 2008
Abstract
Abstract

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.

Copyright
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? *
×