Money Forward Developers Blog

株式会社マネーフォワード公式開発者向けブログです。技術や開発手法、イベント登壇などを発信します。サービスに関するご質問は、各サービス窓口までご連絡ください。

20230215130734

【速報】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とかとそんなに遜色ないよとのこと。 ・・・本当だろうか(笑)

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