Hatena::ブログ(Diary)

mizchi log

@mizchiの雑記帳

2010-08-03

Grooooooooooooooooooooooooovy したかった


大学のアルゴリズムの授業でJavaを使わせられたんだけど、静的型付けでアルゴリズムとか狂気でしかないのでGroovy使う
*1

インストール


MacならPortsでさっくりいれるのがよい

$ sudo port install groovy

公式にバイナリあるんじゃないですかたぶん

実行


Groovyはそれ自身で動作するものではなく、Javaの上位なシンタックスシュガーらしい。まあJVMで動くし。
Javaと違い動的型付けだが、Javaのライブラリを直接使うときはその限りではない。そんなときは式の末尾に as Integer とか as String とかつけて型変換やればよい。


フィボナッチ


groovy hoge.gr
拡張子.groovyが推奨らしいが拡張子6文字とかアレなので .gr とした。見る人がみればわかるし。


fib.gr

def fib(n){
    if(n in [1,2]) { return 1} 
    return fib(n-1) + fib(n-2)
}
print fib(10)

LL脳でもすんなり書ける!ステキ!
ちなみに groovyshで対話式インタプリタが使える。ステキ。
class定義とかのぞけば {を:に 、}を \s に変換したらPythonで動きますね


参考: Groovy基礎文法最速マスター - No Programming, No Life


やっぱGroovyだとGrailsとかがHOTなんだろうか

*1:速度求めだしたら静的なCで各必要があるんだろうけど、まあ複雑なことしないなら前回ベンチとったように代入時に擬似的な動的片付けができるGoでいいじゃん?という気持ち