, , , , , * :
BEFORE AFTER
defmodule SampleCode do | defmodule SampleCode do
def test1 do | def test1 do
num = 1 | num_1 = 1
num = num + 1 | num_2 = num_1 + 1
num = num + 2 | num_3 = num_2 + 2
IO.puts num
end | end
|
def test2 do | def test2
num = 1 | num_1 = 1
for i <- (1..2) do | for i <- (1..2) do
num = num + i | num_2 = num_1 + i
end | end
IO.puts num
end | end
end | end
* Elixir - Erlang-Elixir Erlang.beam, Erlang. Erlang , Elixir .
FP Elixir, Erlang Erlang .
, , Erlang, Elixir:
1: test1() ->
2: num@1 = 1,
3: num@2 = num@1 + 1,
4: num@3 = num@2 + 2,
5: 'Elixir.IO':puts(num@3).
6: test2() ->
7: num@1 = 1,
8: 'Elixir.Enum':reduce(
9: first => 1, last => 2},
10: [], fun (i@1, _@1) -> num@2 = num@1 + i@1 end),
11: 'Elixir.IO':puts(num@1).
11 - , , - num@1, Erlang 8-10 - , , , num@1, 1, , 7.