ElixirConf 2018即将召开。
Elixir Companies登记已经有 301 家公司在使用 Elixir,遍布各行各业。
很好的学习网站:Elixir School,有中文版。
Elixir 大量使用 Tuple,函数返回常常是用这个{:ok, 123},估计是为了模式匹配,对于我来说是新东西,其他语言没见过,一旦习惯了就觉得很自然了。
下面是我写的几个学习代码,抛砖引玉:
defmodule LearnElixir do
# 1 high order
def my_map(list, f) do
Enum.map(list, f)
end
# 2 concurrent
def concu do
seq_do = fn(n) ->
:timer.sleep 1000
IO.puts "take water #{n} over."
end
concu_do = fn(n) ->
spawn(fn ->
:timer.sleep 1000
IO.puts "take water #{n} quickly"
end)
end
IO.puts "SEQUEN...."
Enum.map 1..5, seq_do
IO.puts ""
IO.puts "CONCU...."
Enum.map 1..5, concu_do
:timer.sleep(2000)
end
# 3 protocol
defimpl String.Chars, for: PID do
def to_string(pid) do
"pid-name:#{inspect pid}"
end
end
# 4 macro
defmacro add2(x, y) do
quote do
unquote(x) + unquote(y) + 1
end
end
end
LearnElixir.concu
IO.puts "#{self()}"