In Part 1, we built a boolean algebra using Church Encoding. In this post, we are going to reuse some of the previous work to build a similar algebra, this time for numerals. Church numerals In the algebra we built in the previous post, Church...
Lambda Calculus is the smallest programming language. As we saw on my previous post, the only building blocks available are functions, variables and expressions. There are no built-in primitive values or operations. How can we then solve real-world problems using Lambda Calculus? In this post,...
Recently, I rediscovered my passion for Mathematics and Artificial Intelligence, which I used to hate during my degree in Computer Sciences. Lately, I’ve been focused on Software Design, Automated Testing, Microservices, and Functional Programming. I also love learning new programming languages, so I’ve been wondering...
Lambda Calculus sounds like an arcane term that only functional programming wizards can understand. Nothing could be further from the truth. We use Lambda Calculus everyday when we program. It is the most reducible form of all Functional Programming languages; the primitive building block of...
Scala can be used to build Android applications, as an alternative to Java or Kotlin. Unlike them, setting up an Android project in Scala with SBT is not straightforward, and can give us some headaches to get it right. To show how this can be...
Screencast - Bowling Kata in Kotlin Sergio Rodrigo implements the Bowling Game kata in Kotlin using TDD, showing some of the features of the language, such as support for Functional Programming (Higher Order Functions, Lambdas and built-in functions), Pattern Matching, Extension Functions, Expression Bodies, and...
We live in the rush age. We are literally overwhelmed by the amount of things we have to do, both at work and outside it. We leave work and have a bunch of emails, Facebook notifications, tweets, text messages (among others), waiting for response. Even...
Software is our passion.
We are software craftspeople. We build well-crafted software for our clients, we help developers to get better at their craft through training, coaching and mentoring, and we help companies get better at delivering software.