Scala Hack-a-thon #1に行ってきた
@yuroyoroさん主催のScala Hack-a-thon #1に行ってきました。Scala触るのは初めてで今回私はお勉強に専念してましたが、yuroyoroさん作成の資料が力作!で、これ見ながらscalaインタプリタでお試しコードを叩いてると結構するする理解できました。会場は終始し〜んとしつつもtwitter上では盛り上がっているというstreet computingな感じがグッドなhack-a-thonでした:
今日勉強したのはパターンマッチとケースクラスのところまでくらいかな。その他の感想:
- List作るときに「"foo"::"bar"::Nil」とか末尾にNil持ってきたり、パターンマッチでListの先頭とそれ以降をマッチして再帰したりとか、すごく…Lispです…という感じでぐっと来た。たぶんLispというよりHaskellに近いのですね(Haskellは10年くらい前にちょこっと触っただけでよく知らない)
- 条件指定パターンマッチはガード節っぽくてちょっとPrologの香りもした
- trait/mixinとか関数オブジェクトとかブロック文っぽいのが手軽に使えてすぐ使いたくなった
- 型推論は便利だ。IntelliJのコード補完は型推論に一部対応してて、「val s = "123"」とか書いとくとsをStringとして認識してコード補完してくれる(ただし「val l = new List(1,2,3)」とかにはまだ対応してない)。Eclipse+RDTでRuby書くときとは大違い。言語やIDEが型推論に対応していろいろサジェストしてくれるのは、ソフトウェア開発の正しい進化の方向だなと感じた
- 部分適用とかカリー化とか関数心をくすぐられた
- これらのいいところを備えつつ、Javaの既存ライブラリと統合できてる点にモチベが上がった
という感じでした。懇親会もかなり濃いめの方々のモナドトークが熱かったです。@t_yanoさんの「群論知らなくても足し算は使える。圏論知らなくてもモナドは使える」というお言葉になるほどねと思いました。またぜひぜひ#2の開催をよろしくお願いします〜。
追記
IntelliJのセットアップについては@NetPenguinさんのIntelliJ IDEA 9 Community Edition + Scala Plugin セットアップ手順が大変便利でした!