functional programming

## Functional Programming notes: Algebraic data types and their algebra

When we think about types we usually think about how they can help us to abstract concepts. In this post we will learn how we can think about types in terms of cardinality and why some types are equivalent to …

functional programming

## Functional Programming notes: Lists

In the previous posts we stated that functional programs should limit side effects. If we take that hypothesis as true, how can we implement a List? At a first glance, a data structure to hold data seems the opposite …

personal

## Manage your personal finance with beancount

We are data producers, every time we purchase something we are creating data, when we go to run or even everyday our footsteps can be data if we have the right tool to measure it. Data is important since if …

functional programming

## Functional programming notes: Higher-order functions

In the previous post we defined functions and function composition. Now that we know how function composition works, Let’s take one step further with higher-order functions

Higher-order functions

The idea behind higher-order functions is that functions are values, hence functions can be …

functional programming

## Functional programming notes: Functions

In the previous posts, we took a look at how functions are the core pieces in functional programming languages. We talked about pure functions, referential transparency, side effects and recursion in the previous posts. In this post, we are going …

functional programming

## Functional Programming notes: Recursion

Recursion is a technique that allows us to break down a problem into smaller pieces. This technique allows us to remove some side effects that we perform while writting looping structures and also makes our code more expressive and readable. …

functional programming

## Functional programming notes: Side effects

Functional programming is based on the simple premise that your functions should not have side effects, they are considered evil in this paradigm. If a function has side effects we call it a procedure, so functions do not have side …

## Approaching Outside-in TDD on Android (III)

In the previous post, we wrote the acceptance test as a first step and started creating the most external classes of our implementation. In this post, we will finish implementing the system, and will summarize what we have learnt during …

## Approaching Outside-in TDD on Android (II)

In the previous post, we introduced the Bank kata. We explained how we are going to implement it in Android, reviewed the different kinds of tests that we use in Outside-in and transformed a user story into a bunch of …

## Approaching Outside-in TDD on Android (I)

Outside-in Test-Driven Development (TDD) can be a challenge to implement. In this 3-part post series, we would like to share our experiences applying it to Android development and offer some practical tips for doing so yourself.

As Android developers, we have …