Most practical programming languages include ways of performing various non-functional effects, such as exceptions, generators, dynamic binding and concurrency. Languages typically offer ways for programmers to define new functions, new types, and sometimes even new syntax, but the set of available effects is usually baked into the language and cannot be extended within programs.

In this talk I'll show how a single language construct in OCaml, the effect handler, makes it possible to define all the above effects and more within a program, transferring power from language designers to language users. In particular, I will talk about how effect handlers allow expressing custom concurrency primitives for Multicore OCaml

 
1 favorite thumb_down thumb_up 0 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

Following a gentle introduction to the concept of effect handlers, I will illustrate the power of the language construct in building your own effects with a live demo.

Learning Outcome

An insight into the expressive power of simple primitive in expressing your own concurrent and effectful constructs.

Target Audience

Anyone interested in concurrent functional programming

schedule Submitted 1 year ago

Comments Subscribe to Comments

comment Comment on this Proposal