Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。typesを使ってバリアントを拡張すると、パターンマッチも拡張しなければなりません。二つの独立したバリアントの拡張を合成しようとすると、二つの独立した(パターンマッチを内部的に使っている)関数を合成しなければなりません。(下記の例ではPlus.open_evalとNeg.open_eval)これを実現するために、下記の例では例外を使ってorElseという合成関数を定義しました。例外を使っているあたりが残念です。票4クラスの継承の関数型言語での実装の方法と言っていいと思います。いう「関数を拡張する関数」として実装し、それらを関数合成で繋げた後に不動点を取るとよいです。次は名前をオブジェクト指向風にいろいろ変えましたが、そんな実装です。使われていますので参考にしてください。recursionとパターン不一致の継続の両方の役割を果たしています。それぞれ別だと思ってましたが、統合できるんですね。ありがとうございます。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。