私はMathematicaで小さなmathlinkモジュールを使用しているFortranで書かれたスカラー関数を持っています。この関数は、シンボル定数の扱いを含め、できるだけネイティブのMathematica関数の近くで動作するようにしたい。Mathlinkと遅延評価/変数
私は何度もmathematicaにシンボリックな定数/変数を書いて、置き換えルールのリストで置き換えたいと思っています。しかし、Mathematicaは直ちにシンボリック引数を使用してmathlink関数を評価しようとしますが、明らかに失敗します。たとえば、でも次のような単純な式が
extf[a]/.a->5
すべてのシンボリック引数が数字に置き換えられているまで、機能の評価を遅らせるための方法はありますが失敗しますか?
私はいくつかの成功を収めていますが(ただし、この関数を一般的なmathematicaパッケージに含めて同僚と共有したいのであれば)外部への「ダミー」参照をすべて評価することです私は他の数値定数をすべて評価すると同時に、実参照のすべてのダミー参照を交換するための置換規則を使用します。例えば
dummyf[a]/.{a->5,dummyf->extf}
どのような引数パターンを使用しましたか?引数のパターンが一致しない場合、関数は評価されずに戻ります。その時点で、置き換えが開始され、関数は数値引数で評価される必要があります。 –