Library

Just a collection of random thoughts about books and papers that I read or that I’m reading.

Category theory for programmers

I read this book as an introduction to category theory which was intriguing me for a long time. Even though it explicitly says “for programmers” I think it was still too math-y for me and it’s a bit light on programming. Anyway, it was an enjoyable read and I was able to understand a lot of the math concepts. I would recommend this book if and only if you want to know something about category theory.

Programming Rust

Do you feel like Rust is too complicated to learn? This is the book you should read then. It covers not only the basics, but also some of the most difficult topics of the language in a such a linear and comprehensible way that you’ll think Rust is not that complicated after all. Unfortunately, that’s a lie. Rust is complicated, but that doesn’t mean that learning it should be the same. Highly recommended as a comprehensive introduction to the language.

Learn you a Haskell for great good!

This was the first book that I read when learning Haskell. It’s easy to read and it presents all the basic Haskell features in a simple yet effective way. On the other hand, to make it beginner friendly it barely scratches the surface about what Haskell can do and it’s not enough to write production ready Haskell. However, it’s probably the best starting point to learn Haskell.

Bonus points: lots of cool pictures and freely available online.

Real World Haskell

I read this book after Learn you a Haskell for great good! and I must say it’s a pretty good follow up. If the former focuses on the absolute basics, the latter really goes into details and shows how to write good quality Haskell code. It’s quite outdated now, but if I can write any decent Haskell code I owe it all to this book.

Bonus point: freely available online!

Land of Lisp

It’s a pretty good introduction to the world of Lisp. It’s a pretty basic yet comprehensive book that will guide you in the journey of learning Lisp and functional programming.

Bonus point: so damn funny.

Realm Of Racket

Heavily inspired by Land of Lisp both in the contents and in the style of writing. It’s really fluent and easy to read, but unfortunately it doesn’t go into much details about advanced features of Racket(such as how to build domain specific languages), but it’s a really good guide to the whole Racket ecosystem nonetheless.

Bonus point: so damn funny.

The Nature of Code

I read this book mainly because I really liked some videos on YouTube by the same author(Daniel Shiffman). At the time, I was interested in generative art and recreative programming and I was searching for a good introduction to the subjects and this book popped out. The contents strictly related to programming were actually quite boring to me because they were teaching OOP which I think was a bit out of scope. On other hand, it was eye opening because I realized how much fun programming can actually be!

Bonus point: freely available online.

Why functional programming matters

It’s an awesome paper by John Hughes that illustrates the basic concepts around functional programming. Even though it’s pretty old, it’s one of the best readings to understand the essence of functional programming.

Bonus point: it’s freely available online.

Purely Functional Data Structures

This was originally written as a paper by Chris Okasaki that was later turned into a book. The purpose of this book is to show that it’s possible to implement efficient data structures using purely functional techniques. In particular it focuses on how to exploit laziness to achieve good amortized performance which is really mind bending to me. I cannot say I have fully understood it because it’s a bit hard to follow on the theory, but the overall algorithms are expressed in a really clear and easy to follow manner.

Bonus point: the content is great!