C++Now 2019: Odin Holmes “Tacit DSL All the Things”
Channel: CppNow
Date: 2019-06-15

http://cppnow.org
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: http://cppnow.org/history/2019/talks/
—
Can't we just add a functional programming language to C++ as a DSL that integrates seamlessly? Would that be a good thing? Would I have to understand category theory to use it? Whether or not you are a fan of domain-specific languages it seems we are getting one in C++20's standard library. The ranges DSL brings with it some high-level concepts and with a little abuse many more concepts, from functional programming. At the same time, there seems to be interest in other DSLs bringing other functional concepts such as monadic extensions to optional or monadic composition of asynchronous tasks. But why in separate DSLs? This seems odd because unifying things is at the very heart of functional programming.

In this talk, I will make the argument that with 3 small extensions to the ranges DSL syntax we can make one DSL to rule them all lifting may existing C++ language and library features into a more functional or declarative paradigm as well as unifying many boost libraries. After refreshing the core concepts of the ranges DSL and presenting my proposed extentions we will take a whirlwind tour of how I think we should add functional programming paradigms to C++ in a unified manner. We will rethink sum types, fusion metaprogramming, event-based programming, monads, Haskell do notation, closure's transducers, rust's match, named/deduced parameters, state machines, "terser" lambda syntax, pointfree programming, generative programming, and declarative programming paradigms.  
— 

Odin Holmes
Auto-Intern GmbH
chaos monkey
Germany

Odin was allocated from a pool of hippies in the middle of the forest. He spent most of his career designing electronic circuits and programming micro controllers in assembler. One day after having shot himself in the foot particularly badly a friend introduced him to C++, a seriously powerful and ongoing addiction followed. Odin has authored many proof of concept libraries in the embedded field and is trying to revolutionize this domain. Odin co-authored the kvasir::mpl library, co-founded the embo.io conference and was a heavy contributor to the brigand library. In his day job, he teaches people how to shoot themselves in the foot less and get more from their compiler, both with his in-house team as well as in a training and consulting role.
—
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
---

*--*

---