VB 6.0と比較しながらCurl言語のノリをつかもう
前回に引き続いて、Curl言語の基本的な言語構文を説明します。今回取り上げるのは、プロシージャとクラスの作り方です。VB 6.0では、Sub~End SubおよびFunction~End Functionという構文でプロシージャを作り、クラスモジュールでクラスを作ります。Curlでは、これからがどのように表現されるのでしょう。できるだけシンプルなサンプルプログラムを示しますので、Curl言語のノリをつかんでください。
これまでの記事
プロシージャの作り方
はじめに、プロシージャを作ってみましょう。Curl IDEを起動したら、「ファイル」メニューから「新規プロジェクト」を選択し、表示されるウインドウで「アプレットプロジェクト」を選択します。「マニフェスト名」に「ProcSample」と入力し、プロジェクトを保存する「ディレクトリ」には前回と同様に「C:¥CurlSamples¥ProcSample」と入力します。最後に[OK]ボタンをクリックしてください。
Curl IDEの左上にツリー表示された「start.curl」をダブルクリックします。これによって、ソースコードを編集するエディタのウインドウが開きます。エディタの中には自動生成された数行のコード(Curlのプログラムであることを示す宣言文)があります。これらのコードの後に続けてCurl言語でプログラムを記述します。これから示すサンプルプログラムのコードでは、宣言文の後に記述するものだけを示します(ここまでの手順は、後で別のサンプルを作るときも同様です。サンプルごとに新規プロジェクトを作成し、適当なマニュフェスト名を付け、マニュフェスト名と同名のディレクトリに保存してください)。
VB 6.0では、値を返さないプロシージャをSub~End Subという構文で作り、値を返すプロシージャをFunction~End Functionという構文で作ります。Curlでは、値を返す、返さないにかかわらず {define-proc・・・} という構文で作ります。値を返さない場合は、戻り値のデータ型としてvoid(「無し」を意味する)を指定し、値を返す場合はintやdoubleなどのデータ型を指定します。
サンプルを示しましょう。リスト1は、2つの引数の加算結果を返すadd-numプロシージャです。プロシージャ名が複数の単語(ここではaddとnum)を組み合わせたものとなっている場合は、ハイフンで区切るのがCurlのノリです。
{define-proc {add-num a:int, b:int}:int {return a + b} }
{define-proc・・・} の中に { } で囲んで「プロシージャ名」と「引数名:データ型」を記述します。引数が複数の場合は、カンマで区切ります。ここでは、int型のaおよびbの2つの引数があります。 } の後にある:intは、プロシージャの戻り値のデータ型がint型であることを示しています。プロシージャの処理は、やはり { } で囲みます。{return a + b} という処理は、引数aとbの加算結果をプロシージャの戻り値として返すことを意味しています。このように、{ } を多用するのもCurlのノリです。