Toggle Main Menu Toggle Search

Open Access padlockePrints

Selective Applicative Functors

Lookup NU author(s): Dr Andrey Mokhov, Dr Georgy Lukyanov



This work is licensed under a Creative Commons Attribution 4.0 International License (CC BY 4.0).


Applicative functors and monads have conquered the world of functional programming by providing generaland powerful ways of describing effectful computations using pure functions. Applicative functors provide away to compose independent effects that cannot depend on values produced by earlier computations, and allof which are declared statically. Monads extend the applicative interface by making it possible to composedependent effects, where the value computed by one effect determines all subsequent effects, dynamically.This paper introduces an intermediate abstraction called selective applicative functors that requires alleffects to be declared statically, but provides a way to select which of the effects to execute dynamically. Wedemonstrate applications of the new abstraction on several examples, including two industrial case studies.

Publication metadata

Author(s): Mokhov A, Lukyanov G, Marlow S, Dimino J

Publication type: Article

Publication status: Published

Journal: Proceedings of the ACM on Programming Languages (PACMPL)

Year: 2019

Volume: 3

Issue: ICFP

Online publication date: 01/08/2019

Acceptance date: 14/06/2019

Date deposited: 10/07/2019

ISSN (electronic): 2475-1421

Publisher: ACM


DOI: 10.1145/3341694


Altmetrics provided by Altmetric


Funder referenceFunder name
IF160117Royal Society