Xtend

Xtendを触ってみる その9 クロージャのカリー化(というか部分適用)

XtendではメソッドはそのままJavaのメソッドに変換されるのですが、クロージャは特別で引数の数に応じてFunction0〜Function6オブジェクトに変換されます。なので引数の数が7つ以上のクロージャを作ることはできませんw(コンパイルエラーになります) で、F…

Xtendに触ってみる その8 Xtendの標準ライブラリ

Xtendを触ってみるシリーズも今回で最終回(の予定)です。今回はXtendで標準で提供されているライブラリについてです。といっても別に特別なものではなく、Xtendでコードを書く上で便利そうなライブラリがJavaで実装されているだけです。Xtendの標準ライブ…

Xtendに触ってみる その7 続・拡張メソッド

拡張メソッドについては以前紹介しました。 http://d.hatena.ne.jp/takezoe/20111121#p1 が、Xtendの拡張メソッドを説明する上で外せない、大事なことを書きわすれていました。 拡張メソッドは、そのクラスで定義したもの以外に別のクラスで定義したものをイ…

Xtendを触ってみる その6 クロージャ

今回はXtendに標準で用意されているライブラリを紹介しようと思っていたのですが、その前にクロージャについて触れていなかったので先にクロージャについて書くことにします。 構文はこんな感じです。 [ 引数のリスト | 処理 ]たとえばJavaでこんな感じで書…

Xtendを触ってみる その5 ディスパッチメソッド

今日は拡張メソッドと並ぶXtendの目玉機能の1つであるディスパッチメソッドについてです。 ディスパッチメソッドとは、CLOSなどの総称関数(Generic Function)をメッセージ伝達モデルのオブジェクト指向言語に持ってきたような機能で、同じ名前のメソッドを…

Xtendを触ってみる その4 拡張メソッド

今日はXtendの目玉機能の1つである拡張メソッドについて紹介します。 これは任意のメソッドを、そのメソッドの第一引数の型のオブジェクトをレシーバとして呼び出せるというものです。文章だけだとわかりにくいと思うのでサンプルコードを書いてみます。 def…

Xtendを触ってみる その0 Xtendってなに?

いまさらですが、そもそもXtendってなに?ということを書きわすれていました。 http://www.eclipse.org/Xtext/xtend/ XtendはEclipse FoundationでXtext(http://www.eclipse.org/Xtext/)のサブプロジェクトとして開発されているプログラミング言語です。Xt…

Xtendを触ってみる その3 文字列リテラルとRich String

Xtendの便利な機能の1つにテンプレートを埋め込み可能な文字列リテラルがあります。が、その前にまずはXtendの文字列リテラルについて。 Xtendではシングルクォート、ダブルクォートのどちらで囲んでも文字列リテラルになります。当然のことですが、シングル…

Xtendを触ってみる その2 便利な機能あれこれ

今日はXtendの基本的な構文の中からJavaと比べた場合の便利機能を見てみます。 まずはプロパティへのアクセス。フィールドアクセスの構文でアクセサメソッド経由でのプロパティアクセスを行うことができます。 val p = new Person() // p.setName("Naoki")と…

Xtendを触ってみる その1 クラス、フィールド、メソッド

ひょんなことからXtendを触ってみたら思っていたより面白そうだったので時間を見つけて触ってみようと思っています。参考資料はXtendのチュートリアルプロジェクトのソースとWebサイトにあるReference Documentationです(Reference Documentationはところど…