Started to dive into elixir-lang

Some times ago i decided to start new hobby project and in front of me had the task which instrument to choose for this task implementation. From the header you can guess that i decided to use Elixir. Why Elixir? The main reason is simple: I like Erlang and all it's infrastructure, but in the same time i want to try something new and i think Elixir the best candidate for it. Now more details why i choose Elixir.

First of all quote from Elixir site:
Elixir is a functional, meta-programming aware language built on top of the Erlang VM. It is a dynamic language with flexible syntax and macro support that leverages Erlang's abilities to build concurrent, distributed and fault-tolerant applications with hot code upgrades.
Yes, meta-programming built on top of Erlang VM, very good start, what we have at the current moment.

1. Familiar to us patter matching

2. Immutability

list will never change, so it simply constructs a new list with a head of 0 and a tail of list.

3. Familiar and extended data types

Elixir’s built-in types are:

  • Value types:
    – Arbitrary-sized integers
    – Floating point numbers
    – Atoms
    – Regular expressions

  • System types:
    – PIDs and Ports
    – References

• Collection types
    – Lists
    – Tuples
    – Binaries

And also: Keyword Lists, Ranges, Dictionaries and etc...

4. High Order functions

5. The Amazing Pipes Operator

No comments, it's just perfect:

6. OTP.

Of course OTP:

7. And more....

And many many more: Mix tool, Protocols, Meta Programming, Records and etc...

Well, i take Programming Elixir: Functional |> Concurrent |> Pragmatic |> Fun
by Dave Thomas in my hands and start.