本当に関数型プログラミングがやりたかった事【妄想】
よく、
- 関数型はlet とアロー関数だけだ
と言うと、
- 違う。もっと本質的なものが有る
と応え返される事が有りますが、
本質的なものとは何でしょうか?
私は、

- 束因果ダイアログで上限方向と下限方向の作りが対照的となる様なプログラムの書き方
こそがその”本質的な”だったのでは無いかと思う様になりました。
これにより、
- 仕様とプログラムが対照的になる。暗示的な因果ダイアログが無くなっても、容易にプログラムから仕様を導き出せる
- テストが仕様になる(正しく合一する)
- より簡単にプログラムが作れる
からです。
圏論についてAI に質問
今、束因果ダイアログでは、
- ノードを対象、アークを射
に準えています。しかし圏論において、それらはとば口の存在に過ぎないと思い、
(関手とか自然変換とか、さらに先とかが有るはずです。)
AI に下記の質問をしました。
- 圏論の射は1方向ですが、実質的に双方向に出来る理論は有りますか?
です(2025/7/24 AM Copilot Pro クイック応答)。
すると、いくつか例が挙がった上で、
- トレース付きモノイド圏(Traced Monoidal Category)
と言う例が出ました。見た事の有る用語です。
に有りました。この著者はソフトウェアの分野から圏論に入った方との事で、単に、対象と射のみを扱うだけに留まらない考察をしていらっしゃる様でした。
(私(このブログの筆者)の予想では、関手でさえ、至難で有る様に思えてなりませんが、、、、)
今、構成可能な、本質的な関数型プログラミング
今、構成可能な、本質的な関数型プログラミングは、1つ確かに有ります。
それは、

です。これは
- 1つの純粋関数のみからなるシステム
だと思います。決して「本質的な関数型プログラミング」が絵空事で無いと言うのは、厳然たる事実だと認めざるを得ないと思います。
結論
これからも「形而上学と関数型プログラミング」の論点が整理されていない事で、プログラミングが嫌いになる人は存在し続けることでしょう。