Elixirの概要

概要

本家の記載は確認していないが、いろいろとWebをみるとサーバを書くのに適しているらしい。

学習

https://elixirschool.com/jp/ これが一般的なチュートリアルらしいので進めた。

マッチ演算子

https://elixirschool.com/jp/lessons/basics/pattern-matching/

iex(65)> x = 1
1
iex(66)> 1 = x
1
iex(67)> x
1
iex(68)> 1
1
iex(69)> 2 = x
** (MatchError) no match of right hand side value: 1

ちょっとよくわからない。 1 = xの解釈がいちばん難しい。 たぶんマッチングをとるというぐらいだから、右辺と左辺で一致させられるかを見て、一致した場合に左辺に右辺を代入。今回のケースだと1と1で一致はするけど、左辺に変数がないからなにもしない、ということなのだろう。 別の奴で、elixirの変数の概念は代入ではなく、ラベル付けだ!みたいのも読んだきがするけど。

ということが、ピン演算子まで読んだら、理解できた。

iex(88)> case {1, 2, 3} do
...(88)> {x, y, 3} when y > 0 -> x
...(88)> _ -> "Not match"
...(88)> end
1

マッチングとるのでこういうこともできるらしい。表現力すごい。

caseだとC言語のdefineに該当するような、elseに該当するのが _ -> なのにcondだと true なのが、複雑ちゃ複雑。統一できそうなもんだけど。

モジュール

aliasで名前空間を省略したり、モジュールの関数等をimportでとりこむことができる。import時は必要なものだけ選択してとりこむことも可能

useのあたりがわからなかったので振り返ってもう一度学習したほうがよさそう

シギル

~○ をシギル(sigil)というらしい

comments powered by Disqus