はじめに
今後の目標について、アイディアをいただいたので忘れないようにするための記録です。
共有していただいたこと
AllowKT
AllowKTは、Kotlinのライブラリで、関数に副作用の記述まで強制するものらしいです(適切な説明になっているかはわかりません...)。
読みやすいコードのガイドライン
読みやすいコードのガイドライン (p104) には状態の章のコラムに代数的データについての記述があります。 データには「直和型」と「直積型」があるらしいのですが、理論物理でも直和・直積がでてくるので、今一度プログラミングの文脈でどう対応するかはしっかりと見極める必要があります。
関数型ドメインモデリング
関数型ドメインモデリングの本は通読になってしまっています。よまねば。。。
調べて見つけた書籍
ChatGPTに文献を調べさせたときのメモです。本当に書かれているかはわかりませんが、入り口を広げるための調査には便利です。
型理論
- Benjamin C. Pierce Types and Programming Languages
- 古典的教科書
- Robert Harper Practical Foundations for Programming Languages
- 「数学としての型理論」と実装との橋渡しが非常に明瞭らしい
圏論と型理論
- Bartosz Milewski Category Theory for Programmers
- プログラマー向け圏論入門の定番。Arrowの高階抽象を数学的に理解したい人に最適。
- Saunders Mac Lane Categories for the Working Mathematician
論理と型、Curry-Howard対応
- Jean-Yves Girard, Paul Taylor, Yves Lafont Proofs and Types
- 数学的・論理的に型を理解したい人に最適らしい。そもそもCurry-Howard対応自体初耳だが、そういうものがあるんだなあ。
実装例とFunctional Programmingの実践本
- Paul Chiusano and Rúnar Bjarnason unctional Programming in Scala
- Kotlin UserにとってScalaは構文差異を超えて多くの概念が共通らしい。
- Christopher Allen & Julie Moronuki Haskell Programming from First Principles
- 理論を実装で試したい人向けらしい。
まとめ
コードの安全性を高めるためにも、上記のような書籍、概念を理解したいですね。どのような順番で取り組むべきかは今一度考える必要がありますが、 理解すれば適宜AIに指示が出せるかつ、ガードレールが豊富になるので、高速かつ安全な開発ができるんじゃないかと思っています。
Inuverse Sci. X Tech. Blog