嫌われプログラミングの代弁者

「何で頭ごなしに嫌う人間が居るのか」を色々考える

約束された失敗 6

「関数で無い」とすると。。。

Copilot Pro Think Deeper設定有り 2025/3/5 PM で、

圏論における「射」の矢印は何を表しているのでしょうか?』と質問した所、その回答の冒頭で、

  • 圏論において「射」(morphism)とは、オブジェクト間の「変換」や「関係性」を抽象的に表現する対象です。
  • 矢印の記法(下図)は、オブジェクトAからオブジェクト Bへ構造を保った変換fが存在するという情報を示しています。

との記述が有りました。

 

 

関数で無い圏論

それなら、関数などを絡めず、

  • 仕様因果ダイアグラムの原因)をオブジェクトA
  • プログラム因果ダイアグラムの結果)をオブジェクトB
  • 矢印を変換f

としても良いとならないでしょうか?

仕様も、それに伴う、それに合致する様に作成されるプログラムも、構造は保っているはずです。

そして変換とは、まさにプログラミングの事だと思います。

 

勿論、束構造のダイアグラムで有る以上、

  • 全単射に持ち込めて、見通しの良い説明となった

などという事は望み様も無いのは仕方無い事です。

1つのプログラムに複数の仕様(1つの結果に複数の原因)が有るのが普通ですので、まずもって全単射は無理でしょう。

 

 

結論

これからも「約束された失敗」でプログラミングが嫌いになる人は存在し続けることでしょう。