| プロシージャとクロージャ |
| 基本構文 | |||
| 作者 岡田 一志 | |||
| 2008年4月05日(土曜日) 00:00 | |||
クロージャJavascriptなどで利用されるクロージャ機能はCurlにもあります。これは匿名プロシージャとも呼ばれます。これにはprocマクロを利用します。また、プロシージャとして型定義を指定するために、proc-typeマクロが用意されています。この機能を具体例に沿って説明していきたいとおもいます。
ここでは、単純な足し算のクロージャを例にとって説明します。まず、クロージャを作成するには、procマクロを利用します。procマクロの引数に、実際に必要な引数(ここで足し算する2つの値aとb)を"{"と"}"で囲み、その後戻り値を":"の後に記載します。あとは、中身のロジックを記載していきます。(ここでは足し算をし、結果を返すというものです。)また、このクロージャ自体を変数に代入する場合(上記の例では、pという変数に代入)、変数の型を定義するため、上記のようにproc-typeマクロを利用します。 このプロシージャを実行するには、変数名を"{"と"}"で囲み、実行します。例えば、上記のように{p 引数, 引数}のようにいます。また、この変数をさらに他のプロシージャやメソッドの引数として指定できますので、Javascriptでよく利用されるコールバック関数的な使い方もできます。 グローバル・プロシージャ(関数)Curlでは、グローバルな関数(プロシージャ)も作成することができます。具体例を以下に記載します。
これを作成するには、define-procマクロを利用します。あとは、メソッドを作成するようのと同様に記載し、利用いたします。(もちろんpublic以外のプロシージャも作成できます。) 関連ドキュメント
|
|||
| 最終更新 ( 2008年4月18日(金曜日) 14:09 ) | |||