In the previous post, we started to build our own QuickCheck implementation in Haskell, which we named RapidCheck. We went over the basic concepts needed to build such a module, based on the original publication on QuickCheck. In particular, we explained in details and implemented the following concepts from QuickCheck: Gen a: a generator of... Continue Reading →
Code your own QuickCheck
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: C++ Port
In the previous 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 from the operations we want to perform on it. We saw how it could help us compose operations before traversing the AST... Continue Reading →
Catamorph your DSL: Clojure
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 →