With

With[{x=x0,y=y0,},expr]

expr 中のすべてのx, y, x0, y0, で置換するように指定する.

詳細

  • Withは,局所定数を定義することができる.
  • Withは,expr においてスコープ構文の内側で局所変数として現れないシンボルだけを置き換える.
  • With[{x:=x0,},expr]は未評価の形 x0expr に挿入する.
  • 条件付きの変換規則の右辺としてWith[{vars},body/;cond]を使用することができる. »
  • Withは属性HoldAllを持つ.
  • With構成は,任意のネストが可能である.必要に応じて内側の変数が改名される.
  • Withは,読取り専用の辞書的な変数を実装するスコープ構成である.

例題

すべて開くすべて閉じる

  (3)

局所的に7に設定されたxを含む式を評価する:

xyの両方を局所的に設定する:

Withは評価なしでも使うことができる:

スコープ  (4)

Withを使ってホールドしてある式に値を挿入する:

:=を使って色の未評価の形を結果に挿入する:

以下と比較する:

変数名は同じでもよい:

1回以上必要な値に定数を使う:

アプリケーション  (1)

Withは未評価の式への値の挿入を許す:

特性と関係  (5)

x:=x0を使うと x0の未評価の形が挿入されるが,これは続いて周囲の環境に基づいて評価される:

x=x0x0を一度だけ評価し,その結果を x が出現するすべての箇所に挿入する:

Moduleは割り当てることのできる局所変数を導入する:

With変数は読取り専用である:

WithModuleよりも高速である:

Blockは値のみを局所化する.値を代入することはしない.Moduleは新たなシンボルを作る:

Withは,ネストしたスコープを保存して未評価の式内の代入を許可する:

通常の代入はスコーピングを保存しない:

考えられる問題  (1)

Withはスコープ構文である.ネストしたスコープでは変数の名前が変えられる:

名前の変更を避けるため関数をその要素から構築する:

おもしろい例題  (2)

ニュートン法を使って任意関数の零点を求める:

固定点を求める:

初期化子が局所変数のスコープ内にあるWithのバージョン:

ここでは関数定義内のfは自身のスコープ内にはない:

Wolfram Research (1991), With, Wolfram言語関数, https://reference.wolfram.com/language/ref/With.html.

テキスト

Wolfram Research (1991), With, Wolfram言語関数, https://reference.wolfram.com/language/ref/With.html.

CMS

Wolfram Language. 1991. "With." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/With.html.

APA

Wolfram Language. (1991). With. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/With.html

BibTeX

@misc{reference.wolfram_2024_with, author="Wolfram Research", title="{With}", year="1991", howpublished="\url{https://reference.wolfram.com/language/ref/With.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_with, organization={Wolfram Research}, title={With}, year={1991}, url={https://reference.wolfram.com/language/ref/With.html}, note=[Accessed: 22-November-2024 ]}