2015
DOI: 10.1016/j.jlamp.2014.02.001
|View full text |Cite
|
Sign up to set email alerts
|

Programming with algebraic effects and handlers

Abstract: Eff is a programming language based on the algebraic approach to computational effects, in which effects are viewed as algebraic operations and effect handlers as homomorphisms from free algebras. Eff supports first-class effects and handlers through which we may easily define new computational effects, seamlessly combine existing ones, and handle them in novel ways. We give a denotational semantics of eff and discuss a prototype implementation based on it. Through examples we demonstrate how the standard effe… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

2
273
0

Year Published

2015
2015
2022
2022

Publication Types

Select...
6
3

Relationship

1
8

Authors

Journals

citations
Cited by 148 publications
(275 citation statements)
references
References 22 publications
2
273
0
Order By: Relevance
“…Previous work in Idris has used handlers of algebraic effects [3,5,14,20] to describe side-effecting computations and, furthermore, to describe resource access protocols [6]. However, when there are increasing numbers of communication channels, tracking each in a separate effect becomes unwieldy.…”
Section: Related Workmentioning
confidence: 99%
“…Previous work in Idris has used handlers of algebraic effects [3,5,14,20] to describe side-effecting computations and, furthermore, to describe resource access protocols [6]. However, when there are increasing numbers of communication channels, tracking each in a separate effect becomes unwieldy.…”
Section: Related Workmentioning
confidence: 99%
“…The core idea behind the embedding of effects into sessions is the simulation of effectful computations using processes as effect handlers (inspired by work on effect semantics via handlers, e.g., [3,46]). Interactions with these processes, via session-typed channels, induces a description of the effects of a process as a session type.…”
Section: Processes As Effect Handlers Session Types As Effectsmentioning
confidence: 99%
“…Our encoding is inspired by the approach of algebraic effects handlers for giving effect semantics and implementations [3,29,46]. In this approach, and in our encoding, multiple effects can be easily composed with distinct, independent handlers.…”
Section: Remark 2 (Composition)mentioning
confidence: 99%
“…Following Longley's method [75], we use computational ef-fects [12], namely named exceptions, to derive SCP . The basic method to find the n such that F (f ) depends only on the first n elements of f is a program P (F, f ) that works as follows: P tests whether F applies its argument f to a number n by running the sub-routine (written in an ML-like language): l e t e x c e p t i o n e i n ( F ( f u n x => i f x < n t h e n f x e l s e r a i s e e ) ; t r u e ) h a n d l e e => f a l s e Then by testing F on increasingly larger n's, if the continuity principle is true, P eventually finds an n such that the test returns true § .…”
Section: Introductionmentioning
confidence: 99%