【问题标题】:Should I always use monads in javascript?我应该总是在javascript中使用monad吗?
【发布时间】:2018-01-29 11:36:20
【问题描述】:

目前我正在学习函数式编程,但我对何时应该使用 monads 存有疑问...

是否有一些规则可以让我知道何时使用它?

【问题讨论】:

  • 你也可以问“我应该使用 Promises 吗?”,因为它们类似于 monad。您的实际问题应该是(并且可能是):我是否应该像数学家一样思考和编码。肯定是的。它更难、更不直观,但结果也更通用、更可重用、更不容易出错。
  • 我来这里是为了回应 Ftor 的评论,并补充说这是一个基于意见的问题,不属于 SO – 尝试将 mvce 包含在 specific 问题中关于它

标签: javascript ecmascript-6 functional-programming monads


【解决方案1】:

没有规则,也不是强制性的,但未能利用 monad 可能会使您的代码更难使用(例如,回调地狱、嵌套条件分支、更冗长)。 现代软件开发的本质是组合,而 monad 使组合更容易。

在媒体上有一篇很好的文章深入探讨了这个主题:

https://medium.com/javascript-scene/javascript-monads-made-simple-7856be57bfe8

【讨论】:

  • Elliott does have his detractors 可能值得一提,因为他经常弄错材料。
  • 所有的编程趋势都有批评者,这很好,否则我们会被编程语言和模式困在 1978 年
  • 我的评论不是关于一种趋势,而是关于那个特定的作家。
  • @Andy 是的,他至少在他的陈述中很草率“Flatten 意味着从上下文中解开值。F(a) => a”(来自链接的文章)。跨度>
猜你喜欢
  • 2012-01-10
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 2011-12-31
  • 2016-07-06
  • 2012-03-05
  • 2010-11-05
  • 1970-01-01
相关资源
最近更新 更多