How to replace failure by a list of successes
Proc. of a conference on Functional programming languages and computer architecture
Science of Computer Programming - Special issue on mathematics of program construction
Deterministic, Error-Correcting Combinator Parsers
Advanced Functional Programming, Second International School-Tutorial Text
Premonoidal categories and notions of computation
Mathematical Structures in Computer Science
Journal of Functional Programming
Journal of Functional Programming
Journal of Functional Programming
Domain specific embedded compilers
DSL'99 Proceedings of the 2nd conference on Conference on Domain-Specific Languages - Volume 2
A pattern for almost compositional functions
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Design patterns as higher-order datatype-generic programs
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Uniform boilerplate and list processing
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Haskell, do you read me?: constructing and composing efficient top-down parsers at runtime
Proceedings of the first ACM SIGPLAN symposium on Haskell
Unrestricted pure call-by-value recursion
Proceedings of the 2008 ACM SIGPLAN workshop on ML
Proceedings of the ACM SIGPLAN workshop on Generic programming
Partial Parsing: Combining Choice with Commitment
Implementation and Application of Functional Languages
Bidirectionalization for free! (Pearl)
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Essence of Form Abstraction
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
A pattern for almost compositional functions
Journal of Functional Programming
The worker/wrapper transformation
Journal of Functional Programming
The essence of the iterator pattern
Journal of Functional Programming
The Arrow Calculus as a Quantum Programming Language
WoLLIC '09 Proceedings of the 16th International Workshop on Logic, Language, Information and Computation
Causal commutative arrows and their optimization
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
What does aspect-oriented programming mean for functional programmers?
Proceedings of the 2009 ACM SIGPLAN workshop on Generic programming
Push-pull functional reactive programming
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Unembedding domain-specific languages
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Lazy functional incremental parsing
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Alloy: fast generic transformations for Haskell
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Journal of Functional Programming
Arity-generic datatype-generic programming
Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification
Journal of Functional Programming
Constructing language processors with algebra combinators
Science of Computer Programming
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
A computer-verified monadic functional implementation of the integral
Theoretical Computer Science
Outrageous but meaningful coincidences: dependent type-safe syntax and evaluation
Proceedings of the 6th ACM SIGPLAN workshop on Generic programming
Generic selections of subexpressions
Proceedings of the 6th ACM SIGPLAN workshop on Generic programming
Invertible syntax descriptions: unifying parsing and pretty printing
Proceedings of the third ACM Haskell symposium on Haskell
Seq no more: better strategies for parallel Haskell
Proceedings of the third ACM Haskell symposium on Haskell
A fresh look at programming with names and binders
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Scala for generic programmers: Comparing haskell and scala support for generic programming
Journal of Functional Programming
CEFP'09 Proceedings of the Third summer school conference on Central European functional programming school
Combinators for message-passing in Haskell
PADL'11 Proceedings of the 13th international conference on Practical aspects of declarative languages
Joinads: a retargetable control-flow construct for reactive, parallel and concurrent programming
PADL'11 Proceedings of the 13th international conference on Practical aspects of declarative languages
Idioms are Oblivious, Arrows are Meticulous, Monads are Promiscuous
Electronic Notes in Theoretical Computer Science (ENTCS)
What is a Categorical Model of Arrows?
Electronic Notes in Theoretical Computer Science (ENTCS)
Concrete stream calculus: An extended study
Journal of Functional Programming
Efficient and compositional higher-order streams
WFLP'10 Proceedings of the 19th international conference on Functional and constraint logic programming
Composable discovery engines for interactive theorem proving
ITP'11 Proceedings of the Second international conference on Interactive theorem proving
Extending monads with pattern matching
Proceedings of the 4th ACM symposium on Haskell
Bringing back monad comprehensions
Proceedings of the 4th ACM symposium on Haskell
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Proving the unique fixed-point principle correct: an adventure with category theory
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Proceedings of the seventh ACM SIGPLAN workshop on Generic programming
Scans and convolutions: a calculational proof of Moessner's theorem
IFL'08 Proceedings of the 20th international conference on Implementation and application of functional languages
IFL'08 Proceedings of the 20th international conference on Implementation and application of functional languages
From Bayesian notation to pure racket via discrete measure-theoretic probability in λZFC
IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
Journal of Functional Programming - Dedicated to ICFP 2009
Monads need not be endofunctors
FOSSACS'10 Proceedings of the 13th international conference on Foundations of Software Science and Computational Structures
The environment as an argument: context-aware functional programming
PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
Resource-Safe systems programming with embedded domain specific languages
PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
The Essence of the Iterator Pattern
MSFP'06 Proceedings of the 2006 international conference on Mathematically Structured Functional Programming
The Semantics of Parsing with Semantic Actions
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
A pattern for almost homomorphic functions
Proceedings of the 8th ACM SIGPLAN workshop on Generic programming
Layout-sensitive language extensibility with SugarHaskell
Proceedings of the 2012 Haskell Symposium
Functional programming with structured graphs
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Constructing applicative functors
MPC'12 Proceedings of the 11th international conference on Mathematics of Program Construction
Generic programming with adjunctions
SSGIP'10 Proceedings of the 2010 international spring school conference on Generic and Indexed Programming
Functional instrumentation of actionscript programs with asil
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
Fixing idioms: a recursion primitive for applicative DSLs
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Grammar fragments fly first-class
Proceedings of the Twelfth Workshop on Language Descriptions, Tools, and Applications
Scala macros: let our powers combine!: on how rich syntax and static types work with metaprogramming
Proceedings of the 4th Workshop on Scala
Programming and reasoning with algebraic effects and dependent types
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Productive coprogramming with guarded recursion
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Names for free: polymorphic views of names and binders
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Understanding idiomatic traversals backwards and forwards
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Monadic functional reactive programming
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Hasochism: the pleasure and pain of dependently typed haskell programming
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Feature-Oriented programming with object algebras
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Synchronous digital circuits as functional programs
ACM Computing Surveys (CSUR)
Intensional Type Theory with Guarded Recursive Types qua Fixed Points on Universes
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Hi-index | 0.00 |
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.