HoldAll

HoldAll

属性であり,関数に与えられたすべての引数を未評価に維持することを指定する.

詳細

  • Evaluateを使ってHoldAllの引数の関数を強制的に評価することができる.
  • 関数が属性HoldAllを持っていても,引数に現れるSequenceオブジェクトはデフォルトではフラットにされ,Unevaluatedによる「包み込み」は無視される.そして,この引数に関連した上向きの値が使われる.

例題

すべて開くすべて閉じる

  (1)

アプリケーション  (3)

スコーピング動作をする多くの関数がHoldAll属性を持つ:

関数のリストをプロットする際は,関数ごとに異なるスタイルが使われる:

リスト構造が明白ではない場合は,異なるスタイルは与えられない:

Evaluateを使ってリスト構造を明らかにする:

リスト中の異なるベクトル値を持つ関数にもまた異なるスタイルが与えられる:

HoldAllUnevaluatedを使ってどこでも評価が起りそうな場所でのシンボルの評価を抑制する:

シンボルが値を持つ場合にもシンボル名の長さを求める:

ユーザの制御構造を実装する:

特性と関係  (13)

HoldHoldAll属性を持つ入れ物である:

シンボルに作用する関数は,しばしばHoldAll属性を必要とする:

この属性がないと,関数はシンボルの値に作用してしまう:

Tableのような制御構造は引数が評価されないようにプロテクトする:

さもなければ,大域変数がその操作に影響することがあるかもしれない:

Evaluateを使ってHoldAll 関数の引数の評価を強制する:

遅延的定義の右辺の評価を強制する:

Unevaluatedを使って関数が一時的にHoldAllの属性を持つかのように扱う:

次は評価結果の完全な形である:

次は評価前の入力の完全な形である:

純関数の引数の評価を抑制する:

属性HoldAllを持つ関数にも,一連の接合が行われる:

入れ物であるHoldCompleteを使ってそのような変換も抑制する:

この動作の原因となる属性はHoldAllCompleteである:

置換はホールドされた式の内側で行われる:

ホールドされた式に挿入する:

NHoldAllNから引数をプロテクトするが,それ以外は通常と同じようにそれらの引数を評価する:

HoldPatternはパターンが評価されないようにするが,パターンマッチを妨げることはしない:

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

テキスト

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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