|
2.3.4 パターンにおける式の型指定
式の頭部を参照することで式の「型」に関する情報を得ることができる.例えば,整数は整数型(Integer)の頭部を持ち,リストはリスト型(List)の頭部を持つ.
パターンでも型の限定ができる.例えば,パターンを_hやx_hとすれば,頭部がhの式だけを検索対象にすることができる.整数型のパターンに限定するなら,_Integerとすればよいし,リスト型にするなら_Listと指定すればよい.

指定頭部を持つオブジェクトのパターン
こうすると,整数型の要素だけを置換することができる.
In[1]:= {a, 4, 5, b} /. x_Integer -> p[x]
Out[1]= 
f[x_Integer]に対する割付け操作は,「型」が整数の引数を必要とする関数fを定義する,ととらえることができる.
関数gammaの引数が整数のときだけにその値は確定する.
In[2]:= gamma[n_Integer] := (n - 1)!
この定義は,gammaの引数が整数型であるときだけに適用される.
In[3]:= gamma[4] + gamma[x]
Out[3]= 
4.は実数の頭部(Real)を持つため,gammaの定義は適用されない.
In[4]:= gamma[4.]
Out[4]= 
これは,指数部を整数とした式の値を定義している.
In[5]:= d[x_^n_Integer] := n x^(n-1)
この定義は,指数部が整数のときだけに有効になる.
In[6]:= d[x^4] + d[(a+b)^3] + d[x^(1/2)]
Out[6]= 
|