撰写应用功能

Cli*_*ton -6 haskell functor function-composition applicative

请执行功能:

composeApplicative :: (Applicative f) => f (b -> c) -> f (a -> b) -> f (a -> c)
Run Code Online (Sandbox Code Playgroud)

这样:

(composeApplicative f g) <*> x == f <*> (g <*> x)
Run Code Online (Sandbox Code Playgroud)

或者,解释为什么不能这样做?

pyo*_*yon 6

可以办到:

composeApplicative p q = (.) <$> p <*> q
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请阅读Applicative仿函数的文档,更具体地说,阅读组合法.它实际上是一个声明,任何Applicative实例,composeApplicative f g <*> x必须始终等于f <*> (g <*> x).

作为次要技术说明,在进行等式推理时,方程的左侧和右侧必须用单个等号(=)分隔.double-equals sign(==)保留用于可判定的运行时相等性检查.