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
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

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)
      end
    
      def get_even_numbers(list \\ @default_list) do
        Enum.filter(list, fn(x)-> rem(x,2) == 0 end)
      end
    end

    Note

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