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とかとそんなに遜色ないよとのこと。 ・・・本当だろうか(笑)
面白いセッションでした。