In every object oriented programming language we model the domain with classes. Every object we generate from our classes is a container of state, represented by your instance variables, and behavior, represented by your methods. But Elixir is a functional programming language therefore it doesn’t have classes. It also doesn’t allow you to store state in objects. But of course it allows the definition of behavior, using functions.
It has been said that one of the best way to cement knowledge is to share it with others. To follow that principle I’m starting to share some concepts I’m learning about the Elixir programming language. Coming from OOP, some of these ideas might look strange at the beginning, one of them is immutability.