S99の案内
ここでは、Scalaを用いたプログラミングについてより深く理解するために適していると思われる問題集であるS99について簡単に紹介します。
S-99: Ninety-Nine Scala Problems
URL: https://aperiodic.net/phil/scala/s-99/
元々はProlog用のNinety-Nine Prolog ProblemsをScala版に移植した問題集です。
- P01〜P28:リスト操作
- P31〜P41:数値演算等
- P46〜P50:論理演算
- P55〜P69:二分木
- P70〜P73:多分木
- P80〜P89:グラフ
- P90〜P99:その他の問題
と問題の種類に応じて区分けされています。とりわけ、Scalaを使うときはコレクションやリスト操作を多用するので、P01〜P28については一通り解けるようになっておくと良いでしょう。その他は個人の興味に応じて適宜色々な問題を解いてみてください。
なお、S99の問題の模範解答として、
https://github.com/scala-text/S99
というリポジトリを用意してあります。全ての解答が整備されているわけではありませんが、考えても解答がわからない場合は参考にしても良いでしょう。また、各問題の解答についてのテストケースも書いてあります。