User Tools

Site Tools


programming:elixir:hello_world

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
programming:elixir:hello_world [2023/04/24 13:36] ateixeiraprogramming:elixir:hello_world [2023/04/26 13:26] ateixeira
Line 1: Line 1:
 ====== Hello world ! ====== ====== Hello world ! ======
  
-=====  =====+<code elixir> 
 +IO.puts("Hello world!"
 + 
 +# Same as IO.puts but do not add a new line at the end 
 +IO.write("Hello world !") 
 +</code> 
 + 
 +---- 
 + 
 +=== Interactive Elixir Session ==
 +<code elixir> 
 +iex 
 +</code> 
 + 
 +=== Help === 
 +<code elixir> 
 +
 +</code> 
 + 
 +> Kernel is Elixir's default environment 
 + 
 +> In Elixir, (almost) everything is a function 
 + 
 +---- 
 + 
 +==== Reading values ==== 
 +<code elixir> 
 +name = IO.gets("Salut, comment tu t'appelles ? ") 
 + 
 +IO.write("Salut " <> name) 
 +</code> 
 + 
 +---- 
 + 
 +==== Atom ==== 
 +> An atom type represents a fixed constant. The atom value is simply its own name. 
 + 
 +<code elixir> 
 +# All atoms are preceded with a : 
 +variable = :an_atom 
 +</code> 
 + 
 +==== Cond === 
 +> Cond follows the first path that evaluates to true. If no path evaluates to true, an error is raised by the runtime. 
 + 
 +<code elixir> 
 +cond do 
 +    x > 10 -> :this_might_be_the_way 
 +    y < 7 -> :or_that_might_be_the_way 
 +    true -> :this_is_the_default_way 
 +end 
 +</code> 
 + 
 +==== _ (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 
 + 
 +<code elixir> 
 +{_, denominator} = Float.ratio(0.25) 
 +# => {1, 4} 
 +# the variable `denominator` is bounded to the value 4 
 +</code> 
 +<code elixir> 
 +[1, _, 3] = [1, "toto", 3] 
 +# => [1, "toto", 3] 
 +</code> 
 + 
 +---- 
 + 
 +==== For ==== 
 +<code elixir> 
 +number = IO.gets("Salut, entre un nombre : ") |> String.trim() |> String.to_integer() 
 + 
 +for i <- 1..number do 
 +  IO.puts("#{i}"
 +end 
 +</code> 
 + 
 +---- 
 + 
 +> In elixir, values are not modified. Values are transformed on output. 
 + 
 +**Example** : 
 + 
 +<code elixir> 
 +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) 
 +</code> 
 + 
 +**Output** :  
 + 
 +<code elixir> 
 +Inside condition before name being changed: Toto 
 +Inside condition after name being changed: Robin 
 +Outside condition after name being changed: Toto 
 +</code> 
 + 
 +**Example with date** :  
 + 
 +<code elixir> 
 +d1 ~D[2023-04-25] 
 + 
 +IO.puts(d1) 
 +IO.puts(Date.add(d1, 5)) 
 +IO.puts(d1) 
 +</code> 
 + 
 +**Output** :  
 + 
 +<code elixir> 
 +2023-04-25 
 +2023-04-30 
 +2023-04-25 
 +</code> 
 + 
 + 
programming/elixir/hello_world.txt · Last modified: 2023/05/02 14:52 by ateixeira