gpt4 book ai didi

haskell - monads 如何让我的工作更轻松?给我看一段很酷的代码

转载 作者:行者123 更新时间:2023-12-03 14:24:07 25 4
gpt4 key购买 nike

我喜欢阅读关于我不理解的概念的代码片段。是否有任何片段展示了单子(monad)的所有荣耀?更重要的是,我如何应用 monad 让我的工作更轻松。

我大量使用 jQuery。这是我所知道的一个很酷的单子(monad)应用程序。

最佳答案

和其他人一样,我认为这个问题太笼统了。我认为大多数答案(比如我的)都会给出一些巧妙地利用一个特定单子(monad)的例子。 monad 的真正力量在于,一旦你将它们理解为抽象,你就可以将这些知识应用到你遇到的任何新的 monad 上(在 Haskell 中有很多)。这反过来意味着您可以轻松地弄清楚新代码的作用以及如何使用它,因为您已经知道接口(interface)和一些管理其行为的规则。

无论如何,这是一个使用我编写的测试运行脚本中的 List monad 的示例:

runAll :: IO ()
runAll = do
curdir <- getCurrentDirectory
sequence $ runTest <$> srcSets <*> optExeFlags <*> optLibFlags
setCurrentDirectory curdir

从技术上讲,我使用的是 Applicative 接口(interface),但您可以更改 <*>ap来自 Control.Monad 如果这让你感到困扰。

很酷的一点是它调用了 runTest对于列表“srcSets”、“optExeFlags”和“optLibFlags”中的每个参数组合,以便为每个集合生成分析数据。我认为这比我在 C(3 个嵌套循环)中所做的要好得多。

关于haskell - monads 如何让我的工作更轻松?给我看一段很酷的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3876399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com