変数xを参照する,ホールドされた式を定義する:
x = 2;
e = Hold[x + 1]
HoldはHoldAllの属性を持つので,ホールドされた式が定義される際にはxは評価されない.したがって,式のボディは大域変数xを参照する.xの値が返されるのは,Holdが解放されたときである:
x = 4;
ReleaseHold[e]式が定義される際に,強制的にxを評価させるためには,Withを使う:
こうすると,xの値を変更しても,Holdを解放したときに返される値には影響しない:
x = 4;
ReleaseHold[e]