ryokatsu.dev

プログラミングの基礎を読み終えた

更新日

ずっと途中まで読んで放置していたが写経しながらやっと読み終わりました。

プログラミングの基礎

写経した内容は以下のレポジトリにまとめました。

ocaml-learn

きっかけ

関数型言語ならこの本オススメと知り合いから教えてもらったので少しずつ読み始めました。

どういう本?

Ocamlを使ってその名の通りプログラムの基礎を学んでいきます。

  • データ構造や再帰、パターンマッチ、木構造などを学ぶ
  • メトロネットワーク最短路問題を解くプログラムを実装する
  • プログラミングを作る際に考えるデザインレシピを学ぶ
  • 関数型のプログラミングスタイルを学ぶ

自分は、メトロネットワーク最短路問題を解いたり、解かなかったりしました。メトロネットワーク以外にも随所に問題があり自分でプログラムを作ることができます。

読んだ感想

自分は、本に書いてあった内容を写経して説明を読むスタイルで進めました。その中でも再帰についてはとても理解が深まりました。今ままで何となく苦手意識があったのですが、デザインレシピに沿って考えることで自分が実装すると時も人のコードをレビューするときも少しばかり苦手意識がなくなったと感じます。普段JavaScriptを使用しているとmapとかを平気で使っていますがアルゴリズムを理解できると高階関数って凄いんだなと思いました。

またパターンマッチについてもほぼ初見でしたが、はやくJavaScriptにも欲しい仕様だなと感じました。(今Stage1だけど仕様は検討されている)

Ocamlについて

最初に構文が学べるので書き方は知識ゼロでいけました。ただ問題を解く時は、普段使い慣れたJavaScriptよりは明らかに時間はかかりました。正直未だに慣れていない。。ただ言語としてとても面白かったのでもう少し勉強したいなという気持ちはありました。次はプログラミング言語の基礎概念をどこかのタイミングでやってみたい。