式を取得し、指定された式内で特定のコンストラクターを別のコンストラクターに置き換える関数を作成しようとしています。これに似たもの:
入力:fXY 出力: f XZ Y と Z はどちらも同じデータ型に属し、さらに show から派生しているため、コンストラクターを比較できます。私の問題は、式内の 1 つのコンストラクターを置き換える方法がわからないことです。それは実際に可能ですか?[編集]:私の質問を明確にするためのスニペット:
data Message = X | Y | Z deriving(show)
data Term = F Message Message | G Term
substitute::Term->Term
substitue Term = -- another term with Y replaced with Z