Avatar
たとえば、↓の関数はすべて等しいことになるんじゃないかと。 func foo(_ x: UInt) -> UInt { return x * x } func square(of number: UInt) -> UInt { let result = number * number return result } func bar(_ x: UInt) -> UInt { guard x > 0 else { return 1 } var result = 0 for v in 0..<x { result += x } return x }
6:09 AM
言いたいことは、実際に存在する関数のインスタンスを射とする圏というのは作ることができなくて、インスタンスの同一性以外に関数の equality を定義しないといけないんじゃないかと、そしてそれはロジックの本質的な意味の同一性とするのが適当なんじゃないかということです。