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()}"