値のリストの操作

DownValues[f]f の下向きの値をリストで列挙する
UpValues[f]f の上向きの値をリストで列挙する
DownValues[f]=rulesf に下向きの値を割り当てる
UpValues[f]=rulesf 上向きの値を割り当てる

シンボルの値の参照と割当て

定義された式は,すべて変換規則のリストとして保管される.特定のシンボルが参照されるとき,それに関連付けられた規則のリストが選択され,それらの規則がすべて試される.

ほとんどの場合,ユーザ定義に関係付けられた変換規則そのものに直接アクセスする必要はないだろう.その代り,単に lhs=.を使い,規則を追加したり削除したりすることができる.しかし,場合によっては,実際の規則に直接アクセスできると便利になる.

の定義式を作っておく.
In[1]:=
Click for copyable input
に関する定義に対応している明示的な規則を参照する.
In[2]:=
Click for copyable input
Out[2]=

DownValuesUpValuesにより返される規則は,右辺と左辺がともに未評価の状態にある.左辺は評価保留の関数HoldPatternで覆われ,規則は遅延され,右辺は即時的には評価されない.

「関数の定義」で説明したように,特殊な定義は,より一般的な定義よりも先に適用される.しかし,一般に任意な定義式の間で優先順位をはっきりさせるのは困難である.さらに,Wolfram言語内部で採用される順位ではなく,ユーザ自身で決定した順位を使いたい場合も出てくるだろう.これを行うには,DownValuesUpValuesからリストで得られる規則を再構成すればよい.

オブジェクトに関する定義を作る.
In[3]:=
Click for copyable input
この定義のデフォルトの順位を確認しておく.
In[4]:=
Click for copyable input
Out[4]=
の定義の並び順を逆にする.
In[5]:=
Click for copyable input
Out[5]=