Book Image

Elixir Cookbook

By : Paulo Pereira
Book Image

Elixir Cookbook

By: Paulo Pereira

Overview of this book

Table of Contents (16 chapters)
Elixir Cookbook
About the Author
About the Reviewers

Understanding immutability

In Elixir, data, once created, is immutable. Whenever some input is passed into a function to be transformed, the original value remains unchanged and a new value is created.

This allows for safe concurrent access to the same data by n processes. It makes concurrency easier to manage, as it is guaranteed that no process can change the original data. Any transformation on the original data will result in new data being created.

Getting ready

To get started, we need to follow these steps:

  1. Create a file, which is transformator.ex, defining the Transformator module by adding the following code:

    defmodule Transformator do
      @default_list [1,2,3,4,5,6]
      def get_odd_numbers(list \\ @default_list) do
        Enum.filter(list, fn(x)-> rem(x,2) == 1 end)
      def get_even_numbers(list \\ @default_list) do
        Enum.filter(list, fn(x)-> rem(x,2) == 0 end)


    We define @default_list and use it in both functions preceded by \\. This means that, if no argument is...