|
2.2.8 シンボルでない頭部を備えた式
多くの場合,f[x]等の Mathematica式における頭部 fは単一のシンボルとしたい.それでも,頭部の使われ方によっては,それがシンボルでないこともある.重要な例を次に見てみよう.
この例では,頭部は f[3]である.このように,頭部を使い「配列的な関数」を表すこともできる.
In[1]:= f[3][x, y]
Out[1]= 
どんな式でも頭部として使うことができる.ただし,丸カッコでくくられることに注意されたい.
In[2]:= (a + b)[x]
Out[2]= 
すでに,2.2.5の純関数の作成例において,複雑な式を頭部として使った. Function[vars, body]をある式の頭部として与えることで,評価されるべき引数を伴った関数を指定することができる.
Function[x, x^2]を頭部として使う.式の値は引数の2乗になる.
In[3]:= Function[x, x^2] [a + b]
Out[3]= 
Mathematicaには,純関数と同じように動作する構造体がいくつかあるが,それらは,主に,数値解析等で使われる特定種の関数を表すためにある.また,すべての構造体に対していえるが,基本は,使いたい関数に関する完全な情報を備えた頭部を与える,ということにある.

シンボルでない頭部を持つ式のいくつか
NDSolveは, yを InterpolatingFunction オブジェクトとして与える規則リストを返してくる.
In[4]:= NDSolve[{y''[x] == y[x], y[0]==y'[0]==1}, y, {x, 0, 5}]
Out[4]= 
これは, InterpolatingFunctionオブ ジェクトである.
In[5]:= y /. First[%]
Out[5]= 
InterpolatingFunctionオブジェクトを頭部として使うことで,任意点における関数 yの値を近似させることができる.
In[6]:= % [3.8]
Out[6]= 
複雑な式を頭部として使った重要な用途がもう1つある.それは,数学の関数や関数演算子の構築で ある.
例として,微分を考えてみよう.3.5.4で詳しく説明するが, f'のような式は導関数を表し,それは fに関数演算子を適用することで求めることができる. Mathematicaでは, f'は,Derivative[1][f]と表現される.つまり, Derivative[1]は「関数演算子」としてとらえられ,それはfに適用されるとき, f'と表される別の関数を与えることになる.
この式は,「関数演算子」 Derivative[1] の「関数」 fへの適用を表した頭部を持っている.
In[7]:= f'[x] // FullForm
Out[7]//FullForm= 
頭部 f'を別の頭部(この例では fp)で置換することができる.この操作を行うことで, fpを実行的に fの「導関数」とすることができる.
In[8]:= % /. f' -> fp
Out[8]= 
|