In the previous three posts, we went over the process of building a DSL for arithmetic operations and we introduced the concept of Catamorphism as a way to decouple the traversal of the AST of our DSL from he operations we want to perform on it. We saw how it could help us compose operations... Continue Reading →
Catamorph your DSL: Trade-offs
This post is a third of the series of post dedicated to notion of Catamorphisms and its application to build Domain Specific Languages (DSLs). Our first post introduced an Arithmetic DSL that allowed to build expression composed of operations like addition and multiplication integer constants and integers variables. We built several interpreters on top of... Continue Reading →
Catamorph your DSL: Deep dive
This post is a second of the series of post dedicated to notion of Catamorphisms and its application to build Domain Specific Languages (DSLs). Our last post introduced an Arithmetic DSL that allowed to build expression composed of operations like addition and multiplication integer constants and integers variables. On top of this DSL, we built... Continue Reading →
Catamorph your DSL: Introduction
I recently had the pleasure to go to a Haskell workshop on Domain Specific Languages (DSL). The goal was to teach us the basics on how to build a DSL. The workshop covered a lot of ground, too much to cover here. I will instead focus on one specific notion that this workshop made me... Continue Reading →
Traversal Combinators
This post is the second of the series of post focused on providing useful higher order functions that goes hand in hand with STL algorithms and ranges. Last post was focused on higher order functions, lenses, that allows to zoom on the elements being scanned. Today's post is about exploring higher order functions that allows... Continue Reading →
Traversals and lenses
Following the amazing keynote of Eric Niebler on ranges at the CppCon2015, there has a been a lot of discussion on ranges in the C++ community. Ranges are an amazing tool to add to the STL. I am starting a series of post to introduce some useful higher order functions that go hand-in-hand with the... Continue Reading →