【Erlang】プログラム言語 Elixir 【BEAM】 [転載禁止]©2ch.net
Erlangの仮想環境(BEAM)上で動作するプログラミング言語 Elixirを語りましょう。
公式
http://elixir-lang.org iexで試行錯誤しながら作成したモジュールを最終形のコードとしてファイルに書き出したいなー、と思ったらどうすればいいの? わりかしゲームサーバーとかで使われてるのになんでこんなスレが流行ってないんだ・・。 nervesというiotフレームワークがあるけど
関数型でiotをやるというアイデアは見込みあるのか?
oopの方がiotを自然に捉えれるのでは? >>326
iExで直接モジュールや関数を書くかわりにいったん
iex(1)> q = quote do
...(1)> defmodule Mod do
...(1)> def func , do: 999
...(1)> end
...(1)> end
みたいに構文抽象木を変数に束縛してやって、それをCode.eval_quotedで評価して実体化
iex(2)> Code.eval_quoted(q)
すると直にiExに書いたのと同じように
iex(3)> Mod.func
999
となる で、これを何度も繰り返して問題なく動くようになったらMacro.to_stringを使って
抽象構文木を文字列化して、それをファイルに保存するなりなんなりすればいい
手間は一個増えるけどね
iex(4)> Macro.to_string(q) |> IO.puts
defmodule Mod do
def func do
999
end
end
:ok