2014年12月5日金曜日

C#でパターンマッチをやってみた

TwitterのTLに以下のTweetが流れてきたので、C#でもやってみました。


パターンマッチとは

雑に説明すると、関数型言語において、switch~case文のような『複数の選択肢から1つを選ばせる処理』を記述するための構文です。一般に、関数型言語におけるパターンマッチは、手続き型言語におけるswitch~case文と異なり、単純な値による場合分けだけではなく、クラスやコレクションなど、さまざまなものを選択肢にできます。

関数型言語のパターンマッチがどれくらい強力かは以下の記事が参考になるかと思います。


今回の話は、言語仕様レベルではパターンマッチをサポートしていないJAVA/C#でパターンマッチをやってみた、という話になります。

書いてみた


オリジナルのBlog本文に
出番としては?何だろ、Exceptionを継承している時点で存在しないんじゃないですかね?
との一文があるのですが、 なるほど、確かに使いどころはなさそうです。

そもそも、これ、選択肢をクラスによって場合分け出来るだけなので、パターンマッチと呼ぶには非力なんじゃないかという疑問が…。

とりあえず、例外を使って面白いことができるのは分かりました。