haskell 学习型签名[已关闭]

t98cgbkg  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(167)

**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。

我们不允许问题寻求书籍、工具、软件库等的建议。您可以编辑问题,以便使用事实和引文来回答。
四个月前关门了。
Improve this question
我是Haskell的新手,发现学习类型签名很难。如果我接到一个任务说“输入以下表达式的类型签名”,我就卡住了。所以,我想知道你们中是否有人知道学习这个的好方法,或者你们是否有任何网站/视频可以推荐。我发现现在我已经开始了我的Haskell之旅,很难在互联网上找到帮助或资源。

aydmsdu9

aydmsdu91#

如果我收到一个任务,上面写着“输入以下表达式的类型签名”,我就被卡住了
嗯,这也是一个愚蠢的任务。由于某种原因,Haskell课程一直这样问,但这很愚蠢。推断类型是编译器的任务(特别是它的类型检查器),或者换句话说,对于学习类型理论的人来说是这样,但对于学习Haskell的人来说不是这样。
不要误解我的意思,这当然是你最终能够轻松完成的事情,但实际上你不应该这样看待Haskell代码,它几乎总是反过来:你有一些 context,你看到一个缺口,知道它的类型应该是什么,然后你找到一个匹配类型的表达式,而不是试图找到表达式的类型。(尽管,有时你确实需要首先找到一个表达式的类型,以便知道你需要写的表达式应该是什么类型。)
然而,您绝对需要学习的是 * 理解 * 类型签名。手动练习类型推断 * 是 * 达到此目的的一种方法,但更有效的方法是阅读和编写大量的Haskell代码。代码做什么并不重要,只要选择您感兴趣的任何项目并查看其Haddock文档即可(通常在Hackage上最容易)选择任意函数,并尝试理解为什么给定的描述对应于指定的类型。然后查看源代码并通过实现跟踪类型。
还有,经常玩GHCi,想想你想解决的简单问题。也许像欧拉计划这样的竞赛,但我个人从来没有这样做过。

相关问题