Currently, I am a student of computer science and I am dedicated to programming, I tried different technologies such as node, python but elixir excites me the most and with this technology I bind my professional future. In this series, I would like to share my adventure, successes, and problems I encountered. Hope you will enjoy this series 😀
I started from learning basics from Elixir school and Elixir webpage. Everything was going well with learning until I got an error when I had to use mix. I installed elixir with instructions. I am using Linux Mint and the error I got when trying to create a new app was:
╰─❯ mix new app
** (Mix) Application name must start with a letter and have only lowercase letters, numbers, and underscore, got: "app". The application name is inferred from the path, if you'd like to explicitly name the application then use the "--app APP" option.
I couldn't find an answer on StackOverflow so I decided to ask on the elixir
channel on discord and good people advised me to install elixir via asdf
. It is an extendable version manager that can be used to install elixir properly link.
I removed elixir and erlang then installed the latest versions of them using asdf
:
1) asdf plugin add erlang && asdf plugin add the elixir
2) asdf install erlang latest
3) asdf global erlang <version>
4) asdf install elixir latest
5) asdf global elixir <version>
Thankfully, I can now enjoy the functionality of the mix
.
I will now move on to the most interesting things I learned.
1.Pin operator
it makes assignment when the left side if the match includes variables. Example:
iex> x = 42
42
iex> ^x = 44
** (MatchError) no match of right-hand side value: 44
As you can see when I tried to match x
with 44
I got an error above.
2.Cond
is used to match conditions similar to if-else
or else
in other languages. Example:
iex> cond do
...> "apple" == "banana" -> "Incorrect"
...> true -> "Catched all"
...> end
"Catched all"
3.Pipe operator
it takes the result of one function and passes it on as the first parameter of another expressions. Example:
iex> "HEllo WoRld" |> String.downcase() |> String.split()
["hello", "world"]
4.Documentation of Modules and functions
Example:
defmodule Calculator do
@moduledoc """
Provides a function `add/2` to add two numbers and print them out
"""
def add(x,y) do
IO.puts x+y
end
end
You can access Calculator documentation by using the h
helper function:
iex>c("file.ex")
[Module]
...> Calculator.function(5,4)
9
:ok
iex> h Calculator
Calculator
Provides a function add/2 to add two numbers
5.Start new project using mix
Example:
$ mix new app
Output:
* creating README.md
* creating .formatter.exs
* creating .gitignore
* creating mix.exs
* creating lib
* creating lib/app.ex
* creating test
* creating test/test_helper.exselse
* creating test/app_test.exs
Your Mix project was created successfully.
You can use "mix" to compile it, test it, and more:
cd app
mix test
Run "mix help" for more commands.
Top comments (2)
Good one is there any demand for elixir ?
There is always a demand for technology even COBOL.