HoldAll
属性であり,関数に与えられたすべての引数を未評価に維持することを指定する.
詳細
- Evaluateを使ってHoldAllの引数の関数を強制的に評価することができる.
- 関数が属性HoldAllを持っていても,引数に現れるSequenceオブジェクトはデフォルトではフラットにされ,Unevaluatedによる「包み込み」は無視される.そして,この引数に関連した上向きの値が使われる.
例題
すべて開くすべて閉じる例 (1)
アプリケーション (3)
スコーピング動作をする多くの関数がHoldAll属性を持つ:
関数のリストをプロットする際は,関数ごとに異なるスタイルが使われる:
リスト構造が明白ではない場合は,異なるスタイルは与えられない:
Evaluateを使ってリスト構造を明らかにする:
リスト中の異なるベクトル値を持つ関数にもまた異なるスタイルが与えられる:
HoldAllとUnevaluatedを使ってどこでも評価が起りそうな場所でのシンボルの評価を抑制する:
特性と関係 (13)
シンボルに作用する関数は,しばしばHoldAll属性を必要とする:
Tableのような制御構造は引数が評価されないようにプロテクトする:
さもなければ,大域変数がその操作に影響することがあるかもしれない:
Evaluateを使ってHoldAll 関数の引数の評価を強制する:
Unevaluatedを使って関数が一時的にHoldAllの属性を持つかのように扱う:
属性HoldAllを持つ関数にも,一連の接合が行われる:
入れ物であるHoldCompleteを使ってそのような変換も抑制する:
この動作の原因となる属性はHoldAllCompleteである:
NHoldAllはNから引数をプロテクトするが,それ以外は通常と同じようにそれらの引数を評価する:
HoldPatternはパターンが評価されないようにするが,パターンマッチを妨げることはしない:
テキスト
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