In functional programming you very often find yourselves wanting to use some kind of library that doesn’t really expose a functional API. That’s where embedded domain specific languages come to the rescue.
Embedded Domain Specific Languages or eDSLs allow us to build a data structure that represents the expressions of the target language. In this talk, you will discover the tagless final approach for building DSLs. You will also compare other styles of DSLs like ADTs and Free Monads and have a look at the respective trade-offs. Finally, you will build the purely functional DSL for WebGL using Scala.js and create a small, but awesome 3d app in the browser.