「どちらも食事をして満腹になるという、処理の結果は同じだ。
でもうどん屋…つまりSubプロシージャの場合、呼び出したプロシージャの先で処理が完結してしまう。
つまり、うどん屋でうどんを食べるということで、食事をするという処理は完結だ。
これに対して宅配ピザ…つまりFunctionプロシージャの場合、呼び出したプロシージャの先で処理は完結しない。
つまり、宅配ピザ屋がデリバリーしてくれたピザを、自宅…つまり呼び出し元のプロシージャで食べることによって、食事をするという処理が完結する…。
図にするとこんな感じだよ。」
「…なるほど、これはわかりやすいね。
要するに、呼び出し先で処理が完結してしまうときはSubプロシージャを、
そうではなく呼出先の処理の結果を利用したいときはFunctionプロシージャを使えばいい…、
ということかい?」
八木くんがニヤリとします。
「だいぶん、わかってきたじゃないか星。
ここで重要なのは…うどん屋に行くにしろ、宅配ピザをとるにしろ、それぞれの処理の内容は、毎回変わらないということだ。
変わるのは、注文する料理の内容と支払う代金くらいだ。
まさか毎回、きつねうどんとアンチョビピザばかり、たのむわけにはいかないだろう?」
「…俺、アンチョビは苦手なんだけど…」
星くんが、顔をしかめます。
「すまん、それは俺の好物だ」
八木くんが、ポリポリと頭をかきます。
「な~るほどなあ…。
確かに同じ処理を、毎回コードで記述するのはナンセンスだよね。
別のプロシージャにわけて、呼び出すようにすればコードがぐっと短くなるよね」