Code reuse with transducers in ReasonML - Part 1

Transducers may seem hard at first, but in practice you can pretty much ignore the implementation details and reap their benefits. In this post we’ll refactor some code and make it reusable, overcoming some limitations in the ReasonML language. The...

What happens when I create a class in Ruby?

That Ruby is strongly object-oriented is common knowledge. Everything is an object, from integers to the nil value. But what does that mean exactly? If everything is an object, what is the class of a class? Let’s review for a...

Making a game with Functional Programming - Part 1

Games are essentially stateful mediums: there are levels, items, character statuses, camera position, etc. The world state changes on every game loop, dozens of times per second, not only reacting to events but constantly. They are also very easy to...

Functional Programming - Pure Functions

Functional programming made a huge comeback in the recent years, after decades of being little more than an academic curiosity for most of the industry (Haskell’s unofficial slogan is “avoid success at all costs”). Its fame is well deserved, but...

Reverse engineering Pokémon Go's API as a non-hacker - part 1

Finally, after months of wait, I was able to install Pokémon Go in my Zenfone 2 with an Intel processor. As someone who grew up playing Pokémon, I must say the game didn’t impress me so far. This is not...