パスワードを忘れた? アカウント作成
472927 journal

quabbinの日記: プログラムの基礎

日記 by quabbin

verita'giardinoさんの日記を通りがかりで読んで思い出した。
そういえば昔、()のニュアンスがわからなくて苦労したっけと。
なんとなく面白そうなので、通常の入門書よりそこらを丁寧に説明したらどうなるかの実験を以下にしてみる。

===================================================================

()は「この纏まりで何らかの答えを返しますよ」っていう意味。
{}は「この纏まりで何らかの意味がありますよ」という意味。

()に関する一つ目の例は、

(2 - 1) * 3

。答えはそう、3だ。中学の数学(だっけ。小学校の算数かも…)をやってれば分かる数式じゃないだろうか。
()に関する二つ目の例は、

(谷口 x (キョン x 長門))

。答えはそう、WAWAWAだ。まず長門にキョンが襲い掛かっているところに(ここで襲い掛かってる状況というデータが返ってる)、谷口が入って来て「WAWAWA」に「ごゆっくり」となったのは周知のとおりだろう。(この掛け算は何故か交換法則が利かない。この演算子を定義した奴はク○食らって小学校からやり直しやがれ)

{}に関する一つ目の例は、

{a1, a2, ...}

。これは「答え」が出る類のものではないことは、高校の数学でいう集合であると考えれば納得いくんじゃないか。
{}に関する二つ目の例は、

{SOS団に加入(長門); SOS団に加入(みくる); SOS団に加入(小泉);}

。SOS団に加入した人が三人いて、対象者は長門、みくる、小泉の三人だった(順番もこの順)という意味。

で、()を応用すると関数が出来る。関数というのは行為のことであり、{}との違いは名前を与えられているか否かと、必要とあれば利用者に質問を投げて答えを受け取れるかどうか、そして行為が作用することで行為が主体となる答えが出る場合があるかどうかだろう。
関数に関する一つ目の例は、

f(x)=x + 1

。関数fは一つの数を利用者に質問しており、利用者からの質問の答えはxに入り、関数fは作用してx + 1の計算を行い、答えを返却している。ここでf(2)としたなら、答えは3であるのは高校の数学をやっていれば分かるんじゃないか。
関数に関する二つ目の例は、上の{}の例2で出した

SOS団に加入()

。「SOS団に加入」っていう関数は対象者は誰かという質問を利用者(誰のことだよ!)に出している。そこで()を使って長門、みくる、小泉という答えを与えてやると、行為は抽象的な名前から具体的な現象へと変化するってわけだ。

ここで、ある具体的な関数の形を考えてみよう。
ifという関数があり、これは正と誤のどちらであるかという質問を利用者に投げていて、正であれば行う作用の塊を更に要求しているとしたらどうだろう。
コレを利用した一つの例は、

if (ハルヒが望んだ(超能力者や宇宙人や未来人がいる世界)) {SOS団に加入(長門); SOS団に加入(みくる); SOS団に加入(小泉);}

。ハルヒが超能力者や宇宙人や未来人がいる世界を望んだら、長門・みくる・小泉の三人はSOS団に加入するということをあらわしている。じゃぁ望まなかったら? 誰も加入しないということでもあるわけで、これはちょっとした恐怖です。

===================================================================

とまぁ、こんな具合になったのだけど、うまく出来ただろうか。

# ってココに書いても仕方ないか…。ま、いいや。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

アレゲは一日にしてならず -- アレゲ研究家

読み込み中...