This slide is presented at RubyKaigi 2014 on Sep 18.
We have designed and implemented the library that realizes non-linear pattern matching against unfree data types. We can directly express pattern-matching against lists, multisets, and sets using this library.
The library is already released via RubyGems.org as one of gems.
The expressive power of this gem derives from the theory behind the Egison programming language and is so strong that we can write poker-hands analyzer in a single pattern matching expression. This is impossible even in any other state-of-the-art programming language.
Pattern matching is one of the most important features of programming language for intuitive representation of algorithms.
Our library simplifies code by replacing not only complex conditional branches but also nested loops with an intuitive pattern-matching expression.