抽出式私はEval(Substitute(Expr(...), Expr(..), Expr(.)))の大ファンです。
: )
唯一の欠点: Expr(...)、Expr(..)、Expr(.)
...これが、引数を評価しない関数であるsubst() - substitute() 2.0のアイデアにつながりました。
式処理をいろいろ試しているうちに、 Subst()に必要なロジックがExtract Expr() のロジックに非常に近いことに気付きました。Expr () を使用する必要はなく、可能な場合はName Expr()が適用されます。
Names Default to here(1);
// direct mode, no Expr necessary
Extract Expr(x^2 + y, x);// -> x
Extract Expr(x^2 + y, c);// no c in x^2 + y -> empty
// Name Expr mode
c=Expr(x^2);
Extract Expr(x^2 + y , c);// looks up c = x^2, find "x^2"" in x^2 +y
素晴らしい!
...まで:
Extract Expr(cc * d , cc); // -> cc
cc=Expr(x^2);
Extract Expr(cc * d, cc);// looks up cc = x^2 , so doesn't find cc in cc * d anymore
危険な ...
cc をexpr という名前のシンボルとして定義した後でも、 Extract Exprでc を「文字通り」使用することは可能ですか?
Extract Expr(cc * d , Expr(cc)); // doesn't work
Extract Expr(Expr(cc) , Expr(cc)); // finds Expr(cc)
Extract Expr(cc , Name Expr(Expr(cc))); // -> empty
Extract Expr(Name Expr(Expr(cc)) , Name Expr(Expr(cc))); // finds Name Expr(Expr(cc)), argh!
平:
cc=Expr(x^2);
clear symbols(cc);
Extract Expr(cc * d , cc); //-> empty()
自動化とスクリプトRe: 抽出式多分:
Extract Exprのラッパーとしてカスタム関数を使用する
Names default to here(1);
dummy=Function ({expression, pattern},
Extract Expr(expression, pattern);
);
cc = Expr(x^2);
dummy( Expr(cc+d), Expr(cc)); // -> ccRe: 抽出式何か答えをお探しですか? また、式に関するスクリプト ガイド(スクリプト ガイド > プログラミング方法 > 高度な式、マクロ、リスト - 高度な式)と、特に式がどのように評価されるかについての部分を読んだことがありますか?
Re: 抽出式リンクされたページでは、 ExtractExpr()に関する詳細情報は見つかりませんでした。
@jthi は次のように書きました:
何か答えを探しているのですか?
JMP が式cc * dでccを検索するようにするにはどうすればよいですか?
... cc がx^2 のような別の式の名前として使用されている場合でも同様です。
Extract Expr(cc * d , cc); // -> cc
cc=Expr(x^2);
Extract Expr(cc * d, cc);// looks up cc = x^2 , so doesn't find cc in cc * d anymore
より一般的には:
カスタム関数は常に引数を評価しますが、 式()を使用すると、評価されないようにすることができます。
Extract Expr は、使用する前に常に名前の背後にある評価されていない式 (存在する場合) を取得します。ユーザーはこれを阻止できますか?
名前が引数として使用されると、プラットフォーム コマンドが妨害されることがよくありますが、 Eval によって問題が解決される可能性があります。
JSL には引数の処理カテゴリが全部でいくつありますか? 何か注意すべき点はありますか?
Re: 抽出式なぜ複数の場所で同じ変数名を使用するのでしょうか?
Delete Symbols() と Clear Symbols() は同じではありません
Names Default To Here(1);
cc = Expr(x ^ 2);
Delete Symbols(cc);
Extract Expr(cc * d, cc);
Re: 抽出式リンクをありがとうございます。
もっと見る...Extract Expr() は、cc の定義方法によって動作が異なるようです。cc を文字通り使用するには、Expr() での再割り当てを避けるか、Name Expr() を使用してシンボルを慎重に管理し、評価の問題を防止します。私は難しい論文に苦労していたので、
https://domypaper.com/を利用しました。サービスは素晴らしかったです。ライターは知識が豊富で、私の指示に注意深く従い、よく整理された高品質の論文を提出してくれました。コミュニケーションはスムーズで、論文は時間どおりに納品されました。私は結果に非常に満足しており、今後の課題でも間違いなくこのサービスを再び利用します。