今年のはじめに、昨年贈っていただいた書籍「プログラミングの基礎」を読もうと思い立ち、少しずつ練習問題を解きながら、先日に読み終えました。 今年はプログラミングに関する勉強をやっていきたいと思ったこと、そして新しいプログラミング言語として何かしら関数型言語に触れてみたいということで、この本を選びました。

この本は、駅間の最短経路を求める問題を題材として、データ構造とアルゴリズム、そしてそれを実装するプログラミングの段階での思考方法としてデザインレシピについて解説しています。 そして、お茶の水女子大学の大学生がプログラミングを学ぶ際に教科書として使用されていることもあり、 練習問題が充実していました。

読んだだけだと、なんとなく理解したつもりになりがちです。 ですが、練習問題で実際に「デザインレシピに従って実装せよ」といったものなので、手を動かすことで理解できているか、そして実装に活かせているかを確認することができました。 久しぶりに真面目なアルゴリズムの実装をし、それも初めて扱うOCamlで書くことになったので、初心者として取り組むことができたのも新鮮な気持ちになれて楽しめました。 練習問題の中でも、駅の最短経路問題のアルゴリズムの実装に関するものとそうでないものとに別れています。 問題の総量が多く感じたので、最短経路問題に関するものは省いて、進めました。 それでも十分時間がかかり、やりごたえのある問題でした。

実際に、自分が解いた回答をGitHubにあげてあるので、もしよろしければ参考に。