概要
技術書展7 にて Elixir に関する書籍を入手したため、入門してみました。
尚、書籍内では MacOS, Linux が推奨されておりますが、折角なので Windows環境 で実践してみました。
参考
以下、参考にさせていただきました。
「PhoenixLiveView と Nerves をさわる Elixir へのいざない」
https://techbookfest.org/event/tbf07/circle/5173194898014208
環境
- Windows10
- IntelliJ IDEA Ultimate 2019.2
- Elixir Plugin (https://plugins.jetbrains.com/plugin/7522-elixir)
概要
Chocolaty で Elixir をインストールしてみたところ、mixコマンド実行時にエラーが発生しました。
エラーの内容を確認してみると、erl.exe の参照が 実際のインストールパスである Program Files でなく Program Files (x86) となっておりました。
Program Files に シンボリックリンク を設定することでコマンド自体は通るようになりました。
ですが、現時点 (2019年9月) では素直に 公式サイトのWindowsインストーラ を利用した方が良いかと思います。
プロジェクトの作成は 下記コマンドで実行します。
mix new sample
作成後、IntelliJ より インポートを行います。予め Elixirプラグイン の導入が必要です。
参考までに SDK の設定画面を添付します。
書籍のチュートリアルに従ってフィボナッチ数列の関数を実装してみました。
関数にもパターンマッチングがあるのが、凄いですね。
def fib(0), do: 0
def fib(1), do: 1
def fib(x) when (x >= 2) do
fib(x-1) + fib(x-2)
end
関数を呼び出す関数も実装します。
匿名関数は & で省略表記出来るようなので、試してみました。
test "fibonacci number" do
expect = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
result = Enum.map(0..10, &(Sample.fib(&1)))
assert expect === result
end
続いて、Phonenix のお試しです。
Phonenix のインストールは、下記コマンドで実行します。
mix local.hex
mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
Webプロジェクトの作成は 下記コマンドで実行します。
mix phoenix.new sampleweb --no-ecto
サーバの実行は下記の通り設定することで、IntelliJより起動することが出来ました。
構築後のサンプルWeb画面になります。
コードサンプル
サンプルコードを Github にアップしています。
https://github.com/tYoshiyuki/elixir-study
課題
IntelliJ より デバッグ起動 すると起動時にエラーが発生し、ブレークポイントによる動作確認が上手く出来ませんでした。
(※) 別途、調査したいと思います。。。