相关疑难解决方法(0)

自由定理的良好介绍

我偶然发现了函数式语言中自由定理的一个好主意.然而,我能找到的唯一资源是Wadler的文章" 免费定理 ".这是非常好的,但它绝对不是一个教程,我很难通过(我理解了一半,我需要花很多时间).您能否向我推荐另一篇面向熟悉函数式编程而非硬核函数式语言研究员的软件开发人员的文章或教程?

谢谢.

haskell functional-programming

50
推荐指数
1
解决办法
5341
查看次数

Haskell:关于hackage Control.Applicative文章中应用函子法的描述中的缺陷?:它说Applicative确定了Functor

我想我在hackage文章中Control.Applicative发现了一个缺陷.作为应用仿函数法的描述,它说:

class Functor f => Applicative f where
Run Code Online (Sandbox Code Playgroud)

带有应用程序的仿函数,提供嵌入纯表达式(pure)和序列计算的操作,并组合它们的结果(<*>).

最小完整定义必须包括满足以下法则的这些函数的实现:

身分

pure id <*> v = v
Run Code Online (Sandbox Code Playgroud)

组成

pure (.) <*> u <*> v <*> w = u <*> (v <*> w)
Run Code Online (Sandbox Code Playgroud)

同态

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

互换

u <*> pure y = pure ($ y) <*> u
Run Code Online (Sandbox Code Playgroud)

(请注意,这并未说明有关fmap的任何内容)并且它声明这些法律确定了Functor实例:

作为这些法律的结果,Functorf 的实例将满足

fmap f x = pure f <*> x
Run Code Online (Sandbox Code Playgroud)

我一开始以为这显然是错的.也就是说,我猜测必须存在t满足以下两个条件的类型构造函数:

  1. t是一个 …

haskell functor hackage applicative

11
推荐指数
1
解决办法
361
查看次数