2
再帰的な合計タイプを処理するときにコードの重複を減らす方法
私は現在、プログラミング言語の簡単なインタープリターに取り組んでおり、次のようなデータ型があります。 data Expr = Variable String | Number Int | Add [Expr] | Sub Expr Expr そして、私は次のような単純なことを行う多くの関数を持っています: -- Substitute a value for a variable substituteName :: String -> Int -> Expr -> Expr substituteName name newValue = go where go (Variable x) | x == name = Number newValue go …