最近、Elixirがなんとなく盛り上がってきている気がするので、この機会に入門してみることにした。お題は相変わらずparser combinator。解説はめんどうくさいのでコードだけ貼り付けておく。
わかったこと。
- Elixirの文法は結構くせがある。文法はRubyに影響を受けたということだけど、Rubyの文法とはまた別の癖がある
- Elixirは動的型付き言語だが、関数が定義されているか、引数の数があっているかなどがある程度静的にチェックされるので、凡ミスは意外にコンパイラが見つけてくれる。
f.(x)
という文法はちょっと気持ち悪い。def
で定義したものをオブジェクト化するときに、&f/1
のように引数の数を明示しなければいけないのは、Erlang譲りっぽいけど、ちょっと面倒くさい- パターンマッチは普通に使いやすい
String.slice
の第二引数で与える範囲がJavaとかのsubstring
と違ってちょっと迷ったmix
で簡単にプロジェクトの雛形とテストの雛形を生成できて便利- 関数(第一級でないものの方)を呼び出すときに、
f
のように書くだけで呼び出せるのはRubyっぽい - Ruby以上になんでもかんでもendで閉じる傾向がある
文法は癖があるが、おおむねまっとうな言語だなあというのは初見の印象。