Scala の入門と競技プログラミング
この一週間 Scala の勉強をしていた。
触っている感じ Scala は筋がいい。
純粋なオブジェクト指向だし、関数型スタイルもサポートしている。
Java のライブラリも完全に使える。
■読んだ本
評価のいい以下の3冊をまず購入。
・「Scala スケーラブルプログラミング」
・「Scala プログラミング入門」
・「Scala 逆引きレシピ」
- 作者: Martin Odersky,Lex Spoon,Bill Venners,羽生田栄一,水島宏太,長尾高弘
- 出版社/メーカー: インプレスジャパン
- 発売日: 2011/09/27
- メディア: 単行本(ソフトカバー)
- 購入: 12人 クリック: 235回
- この商品を含むブログ (44件) を見る
- 作者: デイビッド・ポラック,羽生田栄一,大塚庸史
- 出版社/メーカー: 日経BP社
- 発売日: 2010/03/18
- メディア: 単行本
- 購入: 14人 クリック: 251回
- この商品を含むブログ (31件) を見る
Scala逆引きレシピ (PROGRAMMER’S RECiPE)
- 作者: 竹添直樹,島本多可子
- 出版社/メーカー: 翔泳社
- 発売日: 2012/07/03
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 54回
- この商品を含むブログ (13件) を見る
まず「Scala スケーラブルプログラミング」と「Scala プログラミング入門」を平行して読んだ。
「Scala 逆引きレシピ」は文法に体を慣らすために、Codeforces で簡単な問題を解きつつを参照する、というスタイル。
■競技プログラミングでの Scala
オンラインジャッジは言語学習者にいいよ、という話を人にしてきた割に、自分では新しい言語学習時に対して使ってこなかった。
ので、オンラインジャッジを使う。やっぱり文法とかに慣れるのには結構いいと思う。
とりあえず、Codeforces(http://codeforces.com/)が対応している。
ちなみにコードは Github にあげている。
https://github.com/yhyjp/online_judge/tree/master/codeforces
■感想
書いていて感じるのはとてもパワフルだという事。
簡単な問題は超簡単に書ける。最大流とかどれくらいの行数で書けるのかなー。
とりあえずの用途としては競技プログラミング。慣れてきたら Web アプリを作っても良い。
関数型のプログラミングは慣れていないので、まだ頭の中からコードに書き下ろすのにとても時間かかる。
あとはシンタックスシュガーが多いし、便利な関数が多いので、きちんと理解しないと計算量の見積もりで絶対ミスりそう。
まだ疑心暗鬼でコードを書いている。
そのためにも上の二冊はおそらく数回読んだほうがよさそう。