Groovy 1.7.5/1.8-beta-2リリースノート日本語版
いまさらですが、Groovy 1.7.5/1.8-beta-2のリリースノートを訳しました。1.8-beta-2の新機能についてはid:uehajさんの以下の記事がとても参考になるのであわせてご覧ください:
Groovyで日本語DSL再び(+GEP3の解説) - uehaj's blog
クロージャの合成 - uehaj's blog
Groovy 1.7.5リリースと、新DSL機能やクロージャ合成を備えた1.8-beta-2
Groovy開発チームは、Groovy 1.7.5および1.8-beta-2の同時リリースをお知らせできることをうれしく思います。
どちらのリリースも多くのバグフィックスと小さな改良を含んでいますが、特に強調しておきたいのはGroovy 1.8-beta-2の二つの新機能、クロージャ合成と新しい拡張DSL機能です。もしまだなら、前回の1.8ベータ版での新機能にもぜひ目を通しておいてください。
数学の授業を覚えているなら、関数合成の概念をご存知かもしれません。クロージャ合成もほぼ同じものです。クロージャを組み合わせ、これらのクロージャ呼び出しを連鎖して、新しいクロージャを作り出すのです。以下、合成の実例を示します:
def plus2 = { it + 2 } def times3 = { it * 3 } def composed1 = plus2 << times3 assert composed1(3) == 11 assert composed1(4) == plus2(times3(4)) def composed2 = times3 << plus2 assert composed2(3) == 15 assert composed2(5) == times3(plus2(5)) // 逆順の合成 assert composed1(3) == (times3 >> plus2)(3)
クロージャ合成(逆順を含む)の例がもっと見たければ、テストケースを覗いてみてください。
また、Groovy 1.8-beta-2は、Googleサマーコードの生徒、Lidia Donajczykの素晴らしい成果であるコマンド式記法の拡張(GEP-3/拡張コマンド式ともいう)を備えています。これは簡単に言うとメソッド呼び出し連鎖でのドットやカッコを省略可能にすることによって、こういった呼び出しをより自然言語の文に近い形に見せるものです。
この新しいDSL機能を使えば、以下の数行の例のような文が書けるようになります:
move left by 30.centimeters sell 100.shares of MSFT take 2.pills of chloroquinine in 6.hours
拡張コマンド式についてはすでにブログにも書きましたが、どんな文が書けるのかもっと実例が見たいなら、Groovy Web Console上に公開されたさまざまな例を見ることもできます。そこではこういったDSLを構築する方法も示されています。
JIRAのリリースノートも参照できます:
これらのGroovyバージョンは、こちらのダウンロードエリアからダウンロード可能です。そしていつも通り、Mavenのセントラルシポジトリも同期して更新されるでしょう。
この新リリースにご協力いただいたすべての方に深く感謝します。
※原文はこちら。