功能
在我们的代数中,函数可以看作是指数。我们可以看到,如果我们采用带有 n 个实例的类型 a
和带有 m 个实例的类型 b
,则类型 a -> b
将具有 m 个 n 次幂的幂。
例如,Bool -> Bool
与 (Bool,Bool)
同构,为 2 * 2 =2²。
iso1 :: (Bool -> Bool) -> (Bool,Bool)
iso1 f = (f True,f False)
iso2 :: (Bool,Bool) -> (Bool -> Bool)
iso2 (x,y) = (\p -> if p then x else y)