Avatar
上記だと
これは↓のことですか? { g(f($0)) } // g◦f
6:21 AM
ああ、射に関数の入出力の型だけでなくその意味も持ち込むなら、対象が型ではなくてその型のインスタンスの集合でないといけないということですか?
6:23 AM
そうするとインスタンスの equality も考えないといけないのか。
6:27 AM
うーん、やっぱり型を対象、関数を射として、関数のロジックの同一性を equality とした圏を考えても大丈夫なように思うんですが、問題がありますか? (edited)
6:30 AM
実装そのものではなく、↑の foo(_)square(of:)bar(_) を同一とみなす、ただし↓は同一とみなさないという場合です。 func qux(_ x: UInt) -> UInt { return x + x }