next up previous
Next: 9 ある年度の情報処理 II レポート問題 Up: 8.3 関数定義のための細かい注意 Previous: 例1.

例2.

平均値、分散を計算するプログラム (関数) を作れ。
mean::usage =
  "mean[list] returns the mean value of the elements of list."
variation::usage =
  "variation[list] returns the variation of the elements of list."

Begin["Private`"]
mean[l_List] := 
  Module[{n = Length[l], i}, Sum[l[[i]],{i,n}] / n]
variation[l_List] :=
  Module[{n, m, i}, 
        n = Length[l]; m=mean[l]; Sum[(l[[i]]-m)^2, {i,n}]/n]
End[]

Mathematica では C のように何かをするための専用プログラムを記述して、 コンパイルして実行するのではなく、知識を増やして賢くして行き、 質問に答えさせるという感じ。 何か複雑なことを計算させるときは、 ○○関係の関数集 (パッケージという) をシステムにロードして使う、 という形態を取る。こういう場合、 名前をきちんと扱うのは重要になる。 (人間の知的活動でも、一つの名前が、 状況によって全く違う意味になることがあるが、 文脈の違いを適当に認識することによって使い分けている。)


next up previous
Next: 9 ある年度の情報処理 II レポート問題 Up: 8.3 関数定義のための細かい注意 Previous: 例1.
Masashi Katsurada
平成16年7月21日