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 と書けます。

どれが関数で,どれがそうではないのか,始めのうちは気になるかもしれませんが,すぐに慣れてきます。