Loading...

[In English] Functional Thursday #Special - Having an Effect by Oleg Kiselyov

1,489 views

Loading...

Loading...

Rating is available when the video has been rented.
This feature is not available right now. Please try again later.
Published on Feb 25, 2017

(Side-)Effects are the battle cry in what sometimes seems like a war between pure functional and imperative programming. Functional programmers charge brandishing a \emph{monad} -- a powerful weapon, judging by the exponentially proliferating monad tutorials and it appearances (however fleeting at times) in almost any modern language, natural language included. Monads indeed have many uses and benefits. But this is not the whole story.

The talk will try to tell a bigger story, following the tantalizing lead: all the founding papers on monads, free monads, monad transformers, handlers, algebraic effects, etc. -- all of them, down to the title, are about extensible interpreters. What we eventually find is the \emph{interaction}~-- between a client and a server, an interpreter and the interpreted code, an expression and its context. The distinction between functional and imperative is hence contingent, an artifact of focusing on a small part of the interacting system. Revisiting the origins of the field and recovering the insights and forgotten alternatives not only help with the wiser attitude towards monads. We see how they help make our programs have the intended effect.

Loading...


to add this to Watch Later

Add to

Loading playlists...