Erlang/Elixir 几条 Elixir 的好消息,ElixirConf 2018 即将召开

chenge · 2018年09月02日 · 最后由 yfractal 回复于 2018年09月02日 · 6433 次阅读

几条好消息

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


这应该已经凉凉了吧..

2 楼 已删除
ruby_sky 回复

发展的很好

模式匹配让 tuple 很好解析,但 tuple 读起来费事,配置文件看的头大。

ok 还好,no_reply;keep_state,如果对其机制不熟悉的话,就凉凉了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号