{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,29]],"date-time":"2026-04-29T21:31:35Z","timestamp":1777498295674,"version":"3.51.4"},"reference-count":13,"publisher":"Centre pour la Communication Scientifique Directe (CCSD)","issue":"1","license":[{"start":{"date-parts":[[2008,1,1]],"date-time":"2008-01-01T00:00:00Z","timestamp":1199145600000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2008,1]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>In this article, we introduce Applicative functors \u2013 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.<\/jats:p>","DOI":"10.1017\/s0956796807006326","type":"journal-article","created":{"date-parts":[[2007,5,16]],"date-time":"2007-05-16T07:17:36Z","timestamp":1179299856000},"page":"1-13","source":"Crossref","is-referenced-by-count":299,"title":["Applicative programming with effects"],"prefix":"10.46298","volume":"18","author":[{"given":"CONOR","family":"MCBRIDE","sequence":"first","affiliation":[]},{"given":"ROSS","family":"PATERSON","sequence":"additional","affiliation":[]}],"member":"25203","published-online":{"date-parts":[[2008,1,1]]},"reference":[{"key":"S0956796807006326_manual_ref-1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796804005143"},{"key":"S0956796807006326_manual_ref-10","doi-asserted-by":"publisher","DOI":"10.1017\/S0960129597002375"},{"key":"S0956796807006326_manual_ref-7","doi-asserted-by":"publisher","DOI":"10.1145\/331960.331977"},{"key":"S0956796807006326_manual_ref-12","volume-title":"Advanced Functional Programming.","author":"Swierstra","year":"1996"},{"key":"S0956796807006326_manual_ref-2","volume-title":"Toposes, Triples and Theories.","author":"Barr","year":"1984"},{"key":"S0956796807006326_manual_ref-4","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800003658"},{"key":"S0956796807006326_manual_ref-3","unstructured":"Coutts, D. (2002) Arrows for Errors: Extending the Error Monad. Unpublished presentation at the Summer School on Advanced Functional Programming."},{"key":"S0956796807006326_manual_ref-13","volume-title":"Functional Programming Languages and Computer Architecture.","author":"Wadler","year":"1985"},{"key":"S0956796807006326_manual_ref-6","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796898003050"},{"key":"S0956796807006326_manual_ref-8","volume-title":"Workshop on Generic Programming (WGP'98).","author":"Meertens","year":"1998"},{"key":"S0956796807006326_manual_ref-5","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-6423(99)00023-4"},{"key":"S0956796807006326_manual_ref-9","volume-title":"Haskell 98 Language and Libraries: The Revised Report.","author":"Peyton Jones","year":"2003"},{"key":"S0956796807006326_manual_ref-11","unstructured":"R\u00f6jemo, N. (1995) Garbage Collection and Memory Efficiency in Lazy Functional Languages. Ph.D. thesis, Chalmers University of Technology and G\u00f6teborg University."}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796807006326","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,22]],"date-time":"2026-04-22T20:19:09Z","timestamp":1776889149000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796807006326\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2008,1]]},"references-count":13,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2008,7]]}},"alternative-id":["S0956796807006326"],"URL":"https:\/\/doi.org\/10.1017\/s0956796807006326","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2008,1]]}}}