たいていのプログラミング言語が、「関数」、「メソッド」、「手続き」などと呼ばれる言語構成要素を持っています。ここ最近のエントリー内で僕は、それらをひっくるめて(少し低水準な観点から)「サブルーチン」と呼びました。 このサブルーチン概念に関していえば、どの言語も大差ない印象を持ちます。いくつかの引数をもらって何かして1つの値を返しますよね。(値を返さないこともあるけど、ありゃ、暗黙に特定の値を返していると見てさしつかない。) なんで引数はn個なのに、戻り値は1個なんでしょう? 多値関数をサポートしている言語もあるけど(例:Common Lisp)、なんかオマケみたいな扱い。言語の中核的仕様として多値を採用している例を僕は知りません(あったら、教えて)。 それはコンピュータのせいでしょうか 「プログラマの常識関連」の文脈で言及した、スタックやレジスタが原因かもしれません。 普通(“普通”の解釈