SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Java開発者のためのCurl入門(AD)

Java開発者のためのCurl入門-JavaとCurlの構文比較

最終回

  • このエントリーをはてなブックマークに追加

5 Javaに存在しないCurlの仕組み

 Curlの仕組みの中にはJavaには存在しないものも多くあります。前述の中では、4-5.メソッド定義で機能を紹介した「メソッドが複数の戻り値を返すことができる仕組み」などが挙げられます。その中で、特徴的な仕組みを挙げて説明をします。

5-1 数量・単位

 Curlは型の他に単位も持っています。例えば、距離を表すDistance型には、meterや、inchという単位があります。異なる単位での数値計算や比較も可能です。

異なる単位での足し算
{let d:Distance}
{set d = 1meter + 50inch}

 また、Velocity型はDistanceをTimeで割った型だという独自の定義も可能です。科学計算を行う場合には、プログラミング言語にCurlを利用するのも良いのではないでしょうか。

 Curlがサポートしている単位は「距離」「質量」「時間」の他に「角度」「光度」「相対距離」などもサポートされています。詳細は次のURLを参照してください。

5-2 プロシージャ

 JavaScriptなどで利用されるクロージャ機能もあります。Curlでは「匿名プロシージャ」とも呼ばれます。プロシージャとして型定義を指定するために、「proc-type」と「proc」を利用します。

 ここでは、単純な足し算のクロージャを例にとって説明します。

異なる単位での足し算
{value
    let p:{proc-type {int, int}:int} =
        {proc {arg1:int, arg2:int}:int
            {return arg1 + arg2}
        }

    let result:int = {p 10, 20}
    result
}

 まず、クロージャを作成するには、「procマクロ」を利用します。procマクロの引数に、実際に必要な引数(ここで足し算する2つの値arg1とarg2)を"{"と"}"で囲み、その後戻り値の型を「:」の後に記載します。

 このクロージャ自体を変数に代入する場合(上記の例では、pという変数に代入)、上記のように「proc-typeマクロ」を利用しプロシージャ変数の型を定義します。このプロシージャを実行するには、上記のように{プロシージャ変数 引数1, 引数2}のように記述します。

 また、この変数をさらに他のプロシージャやメソッドの引数として指定できますので、JavaScriptでよく利用されるコールバック関数的な使い方もできます。

まとめ

 JavaとCurlの構文を比較すると、予想以上に似ている箇所があったのではないでしょうか。また、Curl独自の強力な機能もあります。Curlを始めた場合、Curl独自の括弧の記述に慣れ、今回紹介した構文を利用できるようになるまでが最初のステップではないかと思います。

 今回で、本連載は最終回になります。本連載が、Curlを使用する開発者のリファレンスとして少しでもお役に立てれば幸いです。これまでご愛読いただいた読者の皆さまありがとうございました。また株式会社カールの方々には毎回レビューをして頂きました。この場を借りて改めてお礼申し上げます。ありがとうございました。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Java開発者のためのCurl入門連載記事一覧

もっと読む

この記事の著者

木村聡(キムラサトシ)

2000年からJavaによるWeb開発に携わる。Seasarプロジェクトコミッタであり、コミッタとしての経験をもとに現在は仕事としてフレームワークの開発を行っている。著書に、「Javaフレームワーク開発入門」や「Eclipseで学ぶはじめてのJava」等がある。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3651 2009/03/13 11:46

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング