dsl
Wed, January 27, 2010
条件判定にクロージャを利用(改良版) groovy
昨日クロージャを使った条件判定についてエントリー書いたのですが、 その後、この方法より多少はよいと思われる別の書き方を思いついたのでメモ。
Tue, January 26, 2010
条件判定にクロージャを利用 groovy
たとえば、無数の点が平面上に存在していて、 その点と点の関係を調べてグループ分けしたい、という問題を解く場合。
考えられるグループは...
- 近くにある点のグループ
- 縦に揃っている点グループ
- 横に揃っている点グループ
- ある図形の上に存在している点のグループ(星座のように)
などが考えられます。
点に対するグループの分け方ルールは無数に存在するので、 思いつきでどんどんルールを追加・変更できるように設計しておきたい。
こういう場合に、普通のJava的発想では、 点同士の関係を解析する IAnalyzer インターフェスを定義して... という発想になってしまうのですが、 GroovyのClosureを使えばもっとスマートに速く問題を解決できそうです。
Mon, January 11, 2010
Groovy を使った設定ファイルの作成 (スタイル設定用 ミニDSL の自作)
Groovyのビルダを使うと、見かけ上設定ファイルのような記述ができるのですが、 それがそのまま実はGroovyのコードとして動かせるということができます。 これが便利なのは、単なる設定ファイルのように見えるものの、 実際はGroovyのコードなので、 変数やロジック等をそこに混ぜることができるという点です。
Groovy In Action の Chapter 8 "ビルダーの利用" では、 Lispの野望、実行可能な仕様に近づく というように表現されています。