次のページ「Erlang」は並列処理が可能な関数型言語だ!最終回の今回は、最近注目されている関数型言語「Erlang」について、そのプログラミングの特徴とErlangが持っている重要な機能を例をみながら説明する。ソースコードを中心に解説していくが、細かい部分まで理解しようと考えず、他のプログラミング言語との違いを感じ取っていただきたい。「Erlang(アーラン)」はエリクソン社が開発し、1998年にオープンソースとして公開した並列処理が可能な関数型言語だ。本連載の「第1回:今勉強したい関数型言語『Haskell』」でも触れているが、関数型言語とは「ラムダ算法をプログラミング言語として実現したもの」と定義されている。ここで「ラムダ算法とは何か?」という疑問を持つ人もいるだろう。ラムダ算法とは「数理論理学や計算理論の抽象的な計算体系」のことだが、言葉だけでそれを理解するのは難しいだろう。そこで実際にErlangを使いながら、ラムダ算法とは何かについてみていこう。Erlangについての情報は、公式Webサイト「http://www.erlang.org/」にまとめられている。こちらのWebサイトからモジュールやドキュメントのダウンロードが可能で、原稿執筆時点では2007年6月13日にリリースされたバージョン5が最新版となっている。ラムダ算法など計算理論についてより詳しく学びたいという方は、LISPに関するWebサイトや書籍を参考にすると良いだろう。Xのターミナルでbashを使って起動した場合を基に解説している。公式サイトではWindows用バイナリなども公開されている。**まず、「erl」コマンドを実行すると対話型の「Erlangシェル」が起動し、Erlangのバージョンと指示待ちのプロンプトが表示される(リスト1)。10.」と入力し、Enterキーを押す(リスト2)。これは、他のプログラミング言語同様、Xという変数に10を代入したことをあらわす。Erlangでは「変数の先頭は大文字のアルファベットでなければならない」というルールが存在する。11.」と指定するように思うはずだ。実際にこれを実行すると、リスト3のようなエラーが表示されてしまう。これは、実は「『=』は『代入を行う』」という説明が間違っているためだ。Erlangにおける「=」は、他のプログラミング言語のように「変数に値を代入する」のではなく「変数に値を結びつける」意味を持つ。binding)」と呼び、明確に分類している。ここでは「Erlangでは一度値が代入(束縛)された変数の値を変えることができない」と覚えておくとよいだろう。教育ビジネス担当部長CやFORTRANコンパイラなどの言語処理系の設計・開発に約10年間従事。その後ユーザ系企業でUNIXによるクラサバの設計・開発を主導。同時に企業の内外で人材育成に注力する。講師として教鞭をとる。「ソフトウェア工学の基礎を勉強してオールラウンド・プレーヤーを目指せ」が技術者育成についての口癖。この記事の評価をお聞かせくださいボタンをクリックしますとウインドウが開きます。