言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

関数型 BASIC

上で書いたように、副作用があるか無いかはプログラミングにとって非常に重要な問題だ。ふと、ここで、われわれはすでに副作用を持つ操作「関数」とそうでない操作「命令」を明確に分ける言語を知っているという事に気がついた。Haskell じゃないですよ。BASIC です。BASIC では、関数 Function と命令 Statement は定義の仕方も使い方も違い、命令は値を返す事が出来ない。残念ながら、BASIC での関数は副作用を与える事も出来るのだが、これを禁じてしまえば面白い事になるのではないか。

思い返せば、始めて C 言語では、全ての操作が「関数」の形をしていると知ったとき、なんとなく違和感があった。文字列を出力するのも関数で、しかも値に大した意味も無いのに関数と呼ぶなんて。BASIC のようなスタイルは、ダサイが、初心者にとってはすんなり入れた気がする。関数と命令が明確に分かれていれば、命令をくくりだす事によって、より美しいプログラムを書くことが出来る。実は BASIC こそ関数型言語の本命では無いだろうか。