「関数で無い」とすると。。。
Copilot Pro Think Deeper設定有り 2025/3/5 PM で、
『圏論における「射」の矢印は何を表しているのでしょうか?』と質問した所、その回答の冒頭で、
- 圏論において「射」(morphism)とは、オブジェクト間の「変換」や「関係性」を抽象的に表現する対象です。
- 矢印の記法(下図)は、オブジェクトAからオブジェクト Bへ構造を保った変換fが存在するという情報を示しています。
との記述が有りました。
関数で無い圏論
それなら、関数などを絡めず、
- 仕様(因果ダイアグラムの原因)をオブジェクトA
- プログラム(因果ダイアグラムの結果)をオブジェクトB
- 矢印を変換f
としても良いとならないでしょうか?
仕様も、それに伴う、それに合致する様に作成されるプログラムも、構造は保っているはずです。
そして変換とは、まさにプログラミングの事だと思います。
勿論、束構造のダイアグラムで有る以上、
- 全単射に持ち込めて、見通しの良い説明となった
などという事は望み様も無いのは仕方無い事です。
1つのプログラムに複数の仕様(1つの結果に複数の原因)が有るのが普通ですので、まずもって全単射は無理でしょう。
結論
これからも「約束された失敗」でプログラミングが嫌いになる人は存在し続けることでしょう。