In the next posts, we will go through a small implementation challenge. The goal will be to implement our own limited version of QuickCheck, the famous generative testing framework of Haskell. Whether or not you do know about the concept of generative testing, I advice you to have a look at the original publication of... 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 →
Beautiful Code: Control.Foldl
The last three posts were about providing useful higher order functions that go hand in hand with C++ STL algorithms and ranges. In particular, we were interested in combining several functions together to create concise and efficient traversals. While documenting on the subject, I went looking at other example in other languages. And I encountered... Continue Reading →
Meetup Report: Kata night
Two days ago, I went at a Crafting Software Meetup at Arolla. The goal was to join other developers and improve our skills as a group by practicing kata. A large majority of us were debutant. So after a difficult start on an exercise that was definitively out of our league, we decided to play... Continue Reading →