Thoughts on a Software Craftsmanship training that could have gone better.

This post is about a story that happened a few months ago. Back then, I attended a three days Software Craftsmanship training on Test Driven Development. More accurately, it was about practicing TDD to gain back control on a legacy C++ code base. Trainings, just as code, are never perfect. Trainers often have to take... Continue Reading →

Implementing Clojure-like Transducers in Idris: advanced transducers

In the previous post, we started the implementation of a small transducer library for Idris. We went over the main concepts, defined types for each of them, and implemented reduce and transduce. We ended the post by building basic transducers such as mapping or filtering. In today's post, we will continue where we left off.... Continue Reading →

Implementing Clojure-like Transducers in Idris: definitions and main concepts

The 1.0.0 of Idris has been released just a few months back. In previous posts, we went over 10 differences between Haskell and Idris and illustrated the dependent typing features of Idris through the implementation of the rules of the Bowling game at the type level. We will continue this series on post on Idris,... Continue Reading →

Hexagonal Architecture and Free Monad: Two related design patterns?

Disclaimer: You do not need to understand Monads to follow this post. This is not a Monad tutorial either, but it might help you getting some intuition on what is a Monad. Some knowledge of Haskell and C++ might help but are not pre-requisite.   There is a lot of talk about Domain Driven Design... Continue Reading →

Idris dependent typing challenge: Bowling Kata

The 1.0.0 of Idris has been released just a few months back, just enough to start trying out the language and some of the possibilities dependent typing offers. In this post, we will look at implementing a type safe version of the Bowling Kata in Idris, to see how far we can go with the... Continue Reading →

The alias method, or transforming data to increase efficiency (Clojure).

This post is dedicated to describing a wonderful and beautiful small algorithm that is not widely known. It allows to pick a random element among an enumerated distribution of elements, where each element is associated a weight. This need is frequently encountered, for instance in property based testing libraries. In test.check, it correspond to the... Continue Reading →

10 things Idris improved over Haskell

The 1.0.0 of Idris has been released just a few months back, just enough to start trying out the language and some of the possibilities dependent typing offers. But this post is not about dependent typing. There is already a really good book that came out this year, named Type Driven Development with Idris, exploring... Continue Reading →

Lisp Meta-Programming for C++ Developers: Automatic traces (Part 2)

In the previous posts, we started a series dedicated to familiarize C++ developers to the world of LISP meta-programming, based on the Clojure programming language. The goal is to offer a different perspective on meta-programming, how we can approach it, and the kind of use cases it can address. We started the series by an... Continue Reading →

Clojure High Performance Fibonacci

Having recently finished reading the Clojure programming book named Clojure: High Performance JVM Programming, I found in it quite a bunch of useful information to increase the performance of Clojure (and more generally JVM-based) applications. The book contains many examples of different constructs we can use in Clojure to increase the performance of arithmetic operations.... Continue Reading →

Create a website or blog at WordPress.com

Up ↑

%d bloggers like this: