小编gat*_*tek的帖子

导出Haskell类型和(<*>)(<*>)的实现

我是一个刚开始学习Haskell的菜鸟,所以如果我问愚蠢的问题,请耐心等待.

最近我遇到了SO中的问题,演示了如何推导出函数和表达式的类型和实现(问题如

我怎么能理解"(.).(.)"?

&

Haskell函数组成,(.)(.)的类型以及它是如何呈现的 )

我发现答案非常鼓舞人心

然后,我尝试为自己做一些练习,以确保我知道如何应用这些技巧.

然后我自己想出这个表达:(<*>)(<*>)我不知道如何解决.

在GHCi中,它给出了类型签名:

(<*>)(<*>) :: Applicative f => (f (a -> b) -> f a) -> f (a -> b) -> f b
Run Code Online (Sandbox Code Playgroud)

但我的问题是我怎么能从这开始

(<*>) :: Applicative f => f (a -> b) -> f a -> f b
Run Code Online (Sandbox Code Playgroud)

并导出GHCi给出的类型签名?

而且,基于类型签名,如何实现(<*>)(<*>) = ??呢?

我陷入困境,无法通过重新安排术语等技术来解决这个问题.我甚至都不知道从哪里开始.

有人会帮我一个忙吗?

非常感谢

注意**:表达式(<*>)(<*>)确实没有特殊意义,这只是我随机为自己做的一个练习

haskell types functional-programming

7
推荐指数
1
解决办法
174
查看次数

标签 统计

functional-programming ×1

haskell ×1

types ×1