Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica > コアとなる言語 > > 評価の制御 > HoldAll >

HoldAll

HoldAll
属性であり,関数に与えられたすべての引数を未評価に維持することを指定する.
  • Evaluateを使ってHoldAllの引数の関数を強制的に評価することができる.
  • 関数が属性HoldAllを持っていても,引数に現れるSequenceオブジェクトはデフォルトではフラットにされ,Unevaluatedによる「包み込み」は無視される.そして,この引数に関連した上向きの値が使われる.
In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=
スコーピング動作をする多くの関数がHoldAll属性を持つ:
関数のリストをプロットする際は,関数ごとに異なるスタイルが使われる:
リスト構造が明白ではない場合は,異なるスタイルは与えられない:
Evaluateを使ってリスト構造を明らかにする:
リスト中の異なるベクトル値を持つ関数にもまた異なるスタイルが与えられる:
HoldAllUnevaluatedを使ってどこでも評価が起りそうな場所でのシンボルの評価を抑制する:
シンボルが値を持つ場合にもシンボル名の長さを求める:
ユーザの制御構造を実装する:
HoldHoldAll属性を持つ入れ物である:
シンボルに作用する関数は,しばしばHoldAll属性を必要とする:
この属性がないと,関数はシンボルの値に作用してしまう:
Tableのような制御構造は引数が評価されないようにプロテクトする:
さもなければ,大域変数がその操作に影響することがあるかもしれない:
Evaluateを使ってHoldAll 関数の引数の評価を強制する:
遅延的定義の右辺の評価を強制する:
Unevaluatedを使って関数が一時的にHoldAllの属性を持つかのように扱う:
ホールドされている式の内側のUnevaluatedは取り除かれない:
次は評価結果の完全な形である:
次は評価前の入力の完全な形である:
純関数の引数の評価を抑制する:
HoldAll関数にも一連の接合が行われる:
入れ物であるHoldCompleteを使ってそのような変換も抑制する:
この動作の原因となる属性はHoldAllCompleteである:
置換はホールドされた式の内側で行われる:
ホールドされた式に挿入する:
NHoldAllNから引数をプロテクトするが,それ以外は通常と同じようにそれらの引数を評価する:
HoldPatternはパターンが評価されないようにするが,パターンマッチを妨げることはしない:
バージョン 1 の新機能
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
フォーマット:   HTML  |  CDF