【速報】RubyKaigi 2014レポ:Non-Linear Pattern Matching against Unfree Data Types in Ruby

RubyKaigi 2014の参加レポート速報!

Session

9/18(木) 15:30 Hall A
Non-Linear Pattern Matching against Unfree Data Types in Ruby (Egison Pattern Matching in Ruby)
Rakuten Institute of Technology , Satoshi Egiさん

参加レポート

Egisonというパターンマッチに特化していて、かつ人間が直感的に記述できる言語を作った話でした。そして、その実装をRubyに移植して、Gem化してるから使ってみてね!というお話しでした。
(Rubyはこんなに簡単にパターンマッチが書けるようになる世界で2番目の言語です(笑))

普通にRubyでパターンマッチを書こうとすると、配列や集合を複数回each等でネストしながらマッチするものを抽出しますが、Egisonを使えばすごく簡潔に直感的に書ける!しかもパターンマッチチングのカスタマイズが簡単にできる!

例では、ポーカーの手をパターンマッチしていました。
Rubyだとかなりの量のコードが必要だけど、このGemを使った例だと3行くらいでマッチング処理がかけるらしい。

めちゃくちゃ便利そうだけど実行速度はどうなんだろう。と考えていたら、やはり同じ質問が出ていた。
=> 作者的にはそんなに遅くないと思っているとのこと。

Koichi Sasadaさんからは、直感的にかけるということだが、一般的なプログラマがどれくらいで習熟できるものなのか。少なくとも初見ではちょっとそう感じない。
=> 東大の友人は3時間くらい(爆笑)、楽天技術研究所の同僚も20時間くらい。
Haskellとかとそんなに遜色ないよとのこと。
・・・本当だろうか(笑)

面白いセッションでした。

Pocket