Algebraic effect and handlers
Algebraic effects and handlers refers to a style of programming which combines algebraic effects with a handling construct. The handling construct intercepts any effects that have been performed, and reinterprets them in some way (perhaps purely functionally, perhaps using a different set of effects).
Languages based on effect handlers
See also
References
-
Community-maintained effects bibliography on GitHub.
-
Algebraic effects and handlers were introduced by Gordon Plotkin and Matija Pretnar in an ESOP 2009 paper, whose journal version appeared at LMCS in 2013 (under a very similar, but not identical, title):
@inproceedings{castagna_handlers_2009,
location = {Berlin, Heidelberg},
title = {Handlers of Algebraic Effects},
volume = {5502},
doi = {10.1007/978-3-642-00590-9_7},
series = {Lecture Notes in Computer Science},
pages = {80--94},
booktitle = {Programming Languages and Systems},
publisher = {Springer Berlin Heidelberg},
author = {Plotkin, Gordon and Pretnar, Matija},
editor = {Castagna, Giuseppe},
date = {2009},
file = {Plotkin and Pretnar - 2009 - Handlers of Algebraic Effects.pdf:C\:\\Users\\Alex\\Zotero\\storage\\Z8EFRUMP\\Plotkin and Pretnar - 2009 - Handlers of Algebraic Effects.pdf:application/pdf},
}
@article{plotkin_handling_2013,
title = {Handling Algebraic Effects},
volume = {9},
doi = {10.2168/LMCS-9(4:23)2013},
pages = {23},
number = {4},
journaltitle = {Logical Methods in Computer Science},
author = {Plotkin, Gordon and Pretnar, Matija},
editor = {Tarlecki, Andrzej},
date = {2013},
file = {Plotkin and Pretnar - 2013 - Handling Algebraic Effects.pdf:C\:\\Users\\Alex\\Zotero\\storage\\5CJ4EUVU\\Plotkin and Pretnar - 2013 - Handling Algebraic Effects.pdf:application/pdf},
}
-
Andrej Bauer gave an introduction to programming with effects and handlers at OPLSS 2018: video, notes
-
The following paper, which was an invited talk at MFPS, is a tutorial to the subject:
@article{pretnar_introduction_2015,
title = {An {Introduction} to {Algebraic} {Effects} and {Handlers}. {Invited} tutorial paper},
volume = {319},
issn = {15710661},
doi = {10.1016/j.entcs.2015.12.003},
language = {en},
journal = {Electronic Notes in Theoretical Computer Science},
author = {Pretnar, Matija},
month = dec,
year = {2015},
pages = {19--35},
file = {Pretnar - 2015 - An Introduction to Algebraic Effects and Handlers..pdf:C\:\\Users\\tz20861\\Zotero\\storage\\GINV7RBD\\Pretnar - 2015 - An Introduction to Algebraic Effects and Handlers..pdf:application/pdf}
}