はじめに
- KFIEという近畿大学産業理工学部の情報系コミュニティがあります
- 最近は、毎週火曜日にLT会をやっているそうです
- 私が学生だったのはもうずいぶん昔のことなのですが、参加させてもらっています
- 毎週、5分間時間をもらって、Elixirいいよ! を伝えていきたいとおもいます
- 今日は以下を学びます
- iex
- mix new
- mix test
- mix format
- iex -S mix
- A journey of a thousand miles begins with a single step.
- この記事はElixirを触るのがはじめてという方に向けて書いています
もくじ
001 mix new, iex -S mix, mix format
|> 002 型
|> 003 Pattern matching
|> 004 Modules and functions
|> 005 Pipe operator and Enum module
|> 006 HTTP GET!
|> 007 Flow
|> 008 AtCoderを解いてみる
|> 999 Where to go next
0. インストール
- まずはElixirをインストールしましょう
- Windowsの方は
- 公式 のインストーラーがあります
- macOSの方は
- a. asdf-vmを使ってインストールする(オススメ)
- (参考) macOS Catalina(10.15.5)にasdfでElixirをインストールする
- Erlangのインストールにけっこう時間がかかります
- b. Homebrewを使ってインストールする
$ brew install elixir
- まず手軽に試してみる感じならこちらのほうが詰まるところは少ないとおもいます
- a. asdf-vmを使ってインストールする(オススメ)
- Linuxの方は、asdf-vmがよいとおもいます
- エディタはVSCodeがオススメです
- extensionはElixirLS: Elixir support and debuggerがよいでしょう
- 私は普段よくmacOSを使っておりまして、macOSでしか動作確認しておりません
- Windows, Linuxについては事情を把握できていない場合がありますのであしからずご了承ください
1. iex
$ iex
Erlang/OTP 23 [erts-11.0.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
Interactive Elixir (1.10.3) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> 40 + 2
42
iex(2)> "hello" <> " world"
"hello world"
iex(3)> h System.halt
...
- Windowsの場合は、
iex.bat
です -
iex
コマンドで少しずつ実行しては結果を試しながら実行できます -
h
で関数のドキュメントを参照できます - 全部打ち込まなくてもタブで補完してくれます
- 終了するときは、
System.halt
で終わらせましょう
2. プロジェクトの作成(mix new
)
$ mix new hello
-
mix new
で以下のプロジェクト構造が作られます
hello
├── README.md
├── lib
│ └── hello.ex
├── mix.exs
└── test
├── hello_test.exs
└── test_helper.exs
- プログラムをファイルに書きたい場合は、プロジェクトを作ることをオススメします
-
$ mix test
ですぐに実行できるテストの雛形が手に入る -
$ mix format
でフォーマットができる - そのうち本格的なプログラムを作る際には
mix new
するようになるので最初からそれに慣れておく
-
テストの実行
- テストの雛形が含まれています
- テストを実行してみましょう
$ cd hello
$ mix test
自動的に作られた.exをよくみてみる
-
mix new
で以下のコードが自動的につくられています -
Hello.hello/0
が定義されています- /の後ろの数字の意味は引数の個数です
- この場合は引数なし(0個)
lib/hello.ex
defmodule Hello do
@moduledoc """
Documentation for `Hello`.
"""
@doc """
Hello world.
## Examples
iex> Hello.hello()
:world
"""
def hello do
:world
end
end
-
## Examples
のところは、Doctestsと呼ばれる部分です - 結果の
:world
をたとえば:hello
に書き換えて$ mix test
を実行するとテストが失敗します -
ExDocというツールでドキュメントを生成することができます
- 生成されるドキュメントの例はたとえば、Enum.map/2 です
- Enum.map/2はこれから接する機会が多い関数の一つです
- Elixirのドキュメントはライブラリもたいていこの形式で書かれていて統一されているのがいいです
- コメントで書いたところがテストされているので、ドキュメントのコード例が正確です!
- 自分のプロジェクトのドキュメントを生成する方法はまたいつか別の機会に説明をします
- 生成されるドキュメントの例はたとえば、Enum.map/2 です
実行
$ iex -S mix
iex> Hello.hello
:world
コードフォーマット
-
mix new
で作ったプロジェクト配下では、下記のコマンドでソースコードのフォーマットを行ってくれます
$ mix format
探検
-
mix
コマンドのtask一覧は下記で確認できます
$ mix help
mix # Runs the default task (current: "mix run")
...
mix new # Creates a new Elixir project
...
iex -S mix # Starts IEx and runs the default task
- さらにtaskの詳細を知りたい場合には以下のようにします(以下newの例)
$ mix help new
3. Wrapping Up
-
iex
,mix new
,mix test
,iex -S mix
,mix format
を学びました - 次回は**型**について説明しようとおもいます
- We are the Alchemists, my friends!
- Elixirの使い手のことは、Alchemistと呼ばれます
- アルケミスト 夢を旅した少年
- Enjoy!!!