私は C++ でのパターン マッチングを調べていましたが、問題に対する機能的なアプローチであると思われるMach7や、最も一般的な分母であると思われるより一般的なVisitor Patternなどの中で、すべてを行うことができますが、優れているのは特定のケース。
数式を操作したいと思います (単純化、評価、および微分方程式の解法や積分などの計算を記号的に実行します)。はい、最終的にはコンピューター代数システムを目指しています。入力については、Boost.Spirit(X3)を使用して何らかの形式の入力を解析することを検討しています(現在、基本的なLaTeXサポートを取得して遊んでいますが、インデックスと下/上付きが問題です...)。
次に、 Boost.Spiritを使用して入力「テキスト」を解析するだけでなく、ライブラリの非パーサー コンポーネントを使用して、結果の AST に対して実際に数学的操作を実行する というクレイジーなアイデアに行き着きました。これは、私の目標に一致するパターンに十分な汎用性がありますか、それとも他のソリューションを検討する必要がありますか? 他の CAS が内部でどのように機能するかについてのドキュメントを見つけようとしましたが、Maximaのようなものの間違いなく素晴らしいコードを調べるまでは、数学的 AST の非常に単純な実装に関する情報を見つけることができないようです。そのため、Boost.Spirit が最終的に必要になることを実行できるかどうかを判断するための入力情報はほとんどありません。