近頃 話題に なっている Elixir で FizzBuzz を書いてみました。
_fizzbuzz は不要だけどまぁ、関数も引数のパターンマッチで?同名のものを複数定義できる点は Erlang にあって Ruby にない部分だったよなーと思ったので。
公式のチュートリアルがなかなかよくまとまってるので雰囲気つかむには軽く写経してみるのをおすすめします。あとは elixir-lang/elixir にソースコード一式があって、 .ex で終わるファイルがどうやら Elixir で書いてあるものらしいのでコメントで埋めこんであるドキュメントと用例を見るのも良いです。
Elixir は面白いですね。特に、
ひとことでまとめると、erlangの並列/高信頼フレームワークが利用できるrubyライクの構文を持つlispといえる。
http://d.hatena.ne.jp/k-1/20120310/p1
なんて言われたら興味をそそられずにはいられません、というのは個人的な趣味としても、 Java と JVM と Scala のように「イマイチな部分だけとっかえてみようぜ」というアプローチは筋が良さそうに思えます。少なくとも Ruby だけで Erlang と張り合うレベルの並列分散システムをつくろうという試みよりは無謀ではなさげ。
とはいえ中間層ができてしまうことでボトルネックやバグの発生箇所が増える懸念点はあるし、そもそも Ruby っぽいシンタックスで Erlang を書きたい層がどれほどいるのかと考えると、極めてニッチなニーズと言わざるを得ないですが、 Scala だって Twitter が採用したりしてそれなりに人気が出たんだから Elixir にも明る未来への道は開けているのかもしれませんね。 Scala というよりは Clojure なのかもしれませんけど...。