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 なのが、複雑ちゃ複雑。統一できそうなもんだけど。 [Read More]