Expression problem

The Expression Problemとは、様々なプログラミング言語のプログラミングパラダイムについての長所と短所を議論する際に用いられる用語である。

元々はPhilip Wadlerがライス大学のプログラミング言語チームでの議論の際に作った言葉である。
Expression Problem とは、古くからある問題に付けられた新しい名前だ。
この問題で目指していることは、静的な型の安全性を保った状態で (例えば、キャストを使用しない)、
データ型を(特定条件毎に)場合分けして定義することだ。
そのデータ型には新しい場合を追加することや、新しい処理を追加すること
をコードを再コンパイルすることなく行えるようになる。

言い換えれば、型変換や条件分岐を使用せずに、既存のデータ型に機能を追加するにはどうすれば良いのか、という問題である。

References 

プログラミング言語デザイン
プログラミングパラダイム
計算機科学の未解決問題