(.) :: (b -> c) -> (a -> b) -> a -> c
f . g = \x -> f(g x)
我不太了解如何阅读功能类型。
(b -> c)
是一个函数接受参数b,返回c,我假设这是函数f (a -> b)
是一个函数接受一个参数a,返回b,我假设这是函数g 不确定c in(b - > c )和in( a - > b)是如何与 a - > C
任何帮助将不胜感激,谢谢!
答案 0 :(得分:5)
或许最好再加上括号,
(.) :: (b -> c) -> (a -> b) -> (a -> c)
并阅读:
(.)
有两个参数,
f
b -> c
)
g
a -> b
)
并返回f . g
类型的函数(a -> c
)。
结果函数的参数类型a
是(.)
的第二个参数(g
的参数的类型,它首先应用于{{1}的参数}),并且组合的结果类型是f . g
的第一个参数((.)
的结果类型,然后将其应用于f
的应用结果到参数)。