加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – Functor,PointedFunctor,ApplicativeFunctor和Monad的

发布时间:2020-12-16 18:26:54 所属栏目:安全 来源:网络整理
导读:我已经研究 Scala(以及扩展的Haskell)一段时间了,我完全被他们的类型系统和功能范例所捕获.最近我偶然发现了“类型级别编程”,并被拖入了Functors和其他我没有听说过的东西(除了Monad,我知道这是一种神秘的东西,但不知道该使用什么它!). 我研究了Haskell中
我已经研究 Scala(以及扩展的Haskell)一段时间了,我完全被他们的类型系统和功能范例所捕获.最近我偶然发现了“类型级别编程”,并被拖入了Functors和其他我没有听说过的东西(除了Monad,我知道这是一种神秘的东西,但不知道该使用什么它!).
我研究了Haskell中的概念(并且顺便通过它的类型系统和类型推理能力而被迷惑了),我有一种对纯粹技术层面的Functor,PointedFunctor,ApplicativeFunctor或Monoid类型意味着什么的坚定把握. (我仍然不知道Monad在技术水平上是什么样的)但是我觉得自己像个白痴,因为我看不到所有这些用处,除非可能获得了一些概念的良好分类(?).这些东西有用吗?为什么生活如此复杂?为什么要研究这些东西并将它们分类为不同的类?

解决方法

Why make life so complex?

他们都在那里让生活更简单!

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

其次,它们增加了我们的表现力,而没有增加真正的新语言特征.
例如,Monads允许您使用标准语法来表达复杂的计算上下文,Functors允许您以标准方式思考和编程数据结构,而Applicative Functors可以让您像对待简单数据一样简单地处理有效或复杂的计算上下文,让您在纯数据之外干净地使用功能范例.

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读