03 「関数型」の意味
Cindyscriptは「関数型」のプログラミング言語です。その意味をまず理解しておきましょう。
Cindyscriptでは,ほとんどすべての命令を「関数」で行います。
たとえば,プログラミングで一番始めによく行われる「文字を表示する」というプログラムを考えましょう。
C言語では
printf("Hello World");
で,コンソールに「Hello Word」 が表示されます。この printf() は標準出力関数と呼ばれていて,かっこの中に表示したいものを書きます。
Java にも同じように printf() があり,これは「メソッド」と呼ばれていますが同じようなものです。
BASICやPythonでは print() です。Cindyscriptでも print() です。
この print() は「かっこの中のものを表示する」という「機能」を持っています。「機能」は英語で「function」です。日本ではこれを「関数」と訳して数学で使っていますね。プログラミングでも同じです。
「機能」=「function」=「関数」
これをまず理解しておきましょう。
さて,プログラミングでよく使われる「繰り返し処理」は,
BASICでは for i=1 to 10 〜処理〜 next の形で
C言語では for(i=1;i<=10;i++){処理} の形で
書かれます。これらはプログラミング言語によって微妙に異なりますが,いずれも「命令文」と言っています。
これに対し,Cindyscriptは repeat() という関数で繰り返し処理をします。
repeat(i,10,処理)
という形です。
もうひとつ,条件判断も見てみましょう。
BASIC IF 条件 処理 ELSE 処理 ENDIF
C言語 if (条件){処理} else{処理}
という形で,これも命令文です。
Cindyscriptでは,これも関数で
if(条件,処理,処理)
とします。前の処理が条件を満たしたときの処理,次の処理が条件を満たさないときの処理です。
このように,Cindyscriptではほとんどの処理が関数で行われます。
では,そうでないものは?
たとえば,2つの数を加えるには, add(a,b) という関数を使うのですが,これは単に a+b と書けます。
また,変数 x に 2 を代入するのは x=2 と書けます。
どれが関数で,どれがそうではないのか,始めのうちは気になるかもしれませんが,すぐに慣れてきます。