User Tools

Site Tools


programming:elixir:hello_world

This is an old revision of the document!


Hello world !

IO.puts("Hello world!")
 
# Same as IO.puts but do not add a new line at the end
IO.write("Hello world !")

Interactive Elixir Session

iex

Help

h
Kernel is Elixir's default environment
In Elixir, (almost) everything is a function

Reading values

name = IO.gets("Salut, comment tu t'appelles ? ")
 
IO.write("Salut " <> name)

Atom

An atom type represents a fixed constant. The atom value is simply its own name.
# All atoms are preceded with a :
variable = :an_atom

Cond

Cond follows the first path that evaluates to true. If no path evaluates to true, an error is raised by the runtime.
cond do
    x > 10 -> :this_might_be_the_way
    y < 7 -> :or_that_might_be_the_way
    true -> :this_is_the_default_way
end

_ (Underscore)

When there is a _ instead of a variable or a value, it means the value will be ignored and any value will be accepted
{_, denominator} = Float.ratio(0.25)
# => {1, 4}
# the variable `denominator` is bounded to the value 4
[1, _, 3] = [1, "toto", 3]
# => [1, "toto", 3]

For

number = IO.gets("Salut, entre un nombre : ") |> String.trim() |> String.to_integer()
 
for i <- 1..number do
  IO.puts("#{i}")
end

In elixir, values are not modified. Values are transformed on output.

Example :

name = "Toto"
 
if (name == "Toto") do
  IO.puts("Inside condition before name being changed: " <> name)
  name = "Robin"
  IO.puts("Inside condition after name being changed: " <> name)
end
 
IO.puts("Outside condition after name being changed: " <> name)

Output :

Inside condition before name being changed: Toto
Inside condition after name being changed: Robin
Outside condition after name being changed: Toto

Example with date :

d1 = ~D[2023-04-25]
 
IO.puts(d1)
IO.puts(Date.add(d1, 5))
IO.puts(d1)

Output :

2023-04-25
2023-04-30
2023-04-25
programming/elixir/hello_world.1682515599.txt.gz · Last modified: 2023/04/26 13:26 by ateixeira