Elixirで新しく使えるようになったオペレータ
つい先ほどElixir 1.0.0がリリースされました。めでたいめでたい。
個人的には、1.0.0-rc2で入った変更に注目しております。
[Kernel] Add <~, ~>, <<~, ~>>, <~>, <|> as operators
これです。
次のようなことができるようになりました。
defmodule M do def left <|> right do left + right end end import M 1 <|> 2 #=> 3 1 <|> 2 <|> 3 #=> 6
以前はsyntax errorになってしまった書き方が、今後は許されます。 もちろんマクロの名前にも使えるので、より柔軟なDSLなどが書けそうです。
ちなみに、結合順は((1 <|> 2) <|> 3)
です。