シンボリック派生エンジンを構築しています。例えば
let f = <@ fun x:double -> x * x @>
let df = der f
結果の式は次のようになります
<@ 2 * x @>
実際の方程式は任意に複雑になる可能性があります。
再帰的なパターンマッチングと変換を使用した導関数の生成はそれほど難しくありませんが、最終的には、生成された方程式を、手書きのようにタイトな数値ループで使用したいと思います。これは数値計算コードであるため、常に高速である方が優れています(可能な場合)
FSharpX引用コンパイラーを見てきましたが、コンパイラーというよりはインタープリターのように見えます。