Haskell中的有效编程[关闭]

问题描述 投票:1回答:1

Haskell中有效的编程意味着什么?它基本上只是说使用applicative functor和简洁的函数?

haskell monads applicative side-effects
1个回答
1
投票

正如其他人在评论中已经说过的那样,效果要么具有副作用,要么具有副作用本身。例如,写入文件,发送网络请求可以称为效果。在Haskell中,这是使用IO monad完成的(但是,这不是最好的介绍)。

然而,即使没有涉及IO,也有其他构造看起来像是在变异。这些是作为其他monad实现的。有state monadrandom monadwriter monad等等。这些也可以被认为是有效的。

对于这些单子的实际使用,人们经常使用某种形式的单子变换器。包mtlmonads-tf帮助组成这些monad。这对于使用例如状态monad和随机monad的特征进行计算是有用的。但是,您需要启用一些GHC语言扩展,但是当您习惯它时应该没有问题。还有extensible-effects,但我还没玩过它。

这是Haskell语言中相当大的一章,但它有助于编写更加可靠的代码。也许来自Book Learn you a Haskell for Great Good的第11章和第12章可能会帮助您解决一些问题。还有许多其他教程和博客文章(可能太多),涵盖这些看起来适合你的:)

我个人不会考虑使用普通的仿函数,因为它们只进行映射。

© www.soinside.com 2019 - 2024. All rights reserved.