gpt4 book ai didi

scala - Functor、PointedFunctor、ApplicativeFunctor 和 Monad 的确切应用是什么?

转载 作者:行者123 更新时间:2023-12-02 02:49:58 26 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




9年前关闭。




我一直在研究 Scala(以及扩展的 Haskell)有一段时间了,我完全被他们的类型系统和函数范式所吸引。最近我偶然发现了“类型级编程”,并被拖入了 Functors 之类的东西和其他我没有听说过的东西(除了 Monad,我知道它具有某种神秘的性质,但不知道要利用什么它!)。
我研究了 Haskell 中的概念(顺便说一下,被它的类型系统和类型推断能力迷住了),我对类型是 Functor、PointedFunctor、ApplicativeFunctor 或 Monoid 的纯技术水平有了一个深刻的理解(即使在技术层面,我仍然不知道 Monad 是什么)但我感觉自己像个白痴,因为我认为所有这些都没有用处,除了可能获得了一些概念的良好分类(?)。这些东西有什么用?为什么要让生活如此复杂?为什么要研究这些东西并将它们分为不同的类别?

最佳答案

Why make life so complex?



他们都是为了让生活更简单!

首先,它们使我们编写的代码更清晰、更清晰。

其次,它们在不添加真正新的语言特征的情况下增加了我们的表现力。
例如,Monads 让你使用标准语法来表达复杂的计算上下文,Functors 让你以标准的方式思考和编程关于数据结构,Applicative Functors 让你像对待直接数据一样简单地对待有效或复杂的计算上下文,让你在纯数据之外干净地使用功能范式。

它们都有助于代码重用并帮助我们理解彼此的代码,因为它们为我们提供了一种标准的思考方式。

一旦你习惯了它们,你就不想没有它们!

关于scala - Functor、PointedFunctor、ApplicativeFunctor 和 Monad 的确切应用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12797504/

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