Expression Problem
https://haskell.e-bigmoon.com/posts/2019/09-09-extensible-ast.html
Expression Problem とは何か?
既存のコードを変更 (再コンパイル) せずに、新しい関数とデータの両方を追加することは難しいという問題です。
ベースとなるコードは以下の通りです。
解決方法
プログラミング言語ごとに解決策がいくつもあります。
型クラス
データコンストラクタを型として別々に定義します。
このままではデータがバラバラなので、型クラスを使ってまとめます。
Base.hs
操作 evaluate
を型クラスのメソッドとして定義します。
操作 stringify
を型クラスのメソッドとして定義します。
参考リソース
Last updated