我已经从 Richard Bird 的使用 Haskell 的 FP 简介开始学习 Haskell,但我坚持要证明以下几点:
pair (f, g) . h = pair (f . h, g . h)
pair的定义如下:
pair :: (a -> b, a -> c) -> a -> (b, c)
pair (f, g) x = (f x, g x)
有人能指出我正确的方向吗?请记住,我只是在开始。提前致谢!
最佳答案
一种方法是扩展所有定义。请记住 f . g = \x -> f (g x)
和 f a b = ...
与 f a = \b -> ...
相同.
所以您可以尝试扩展 pair
的定义和 .
在 pair (f, g) . h = pair (f . h, g . h)
关于Haskell 元组函数组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18422310/