【问题标题】:How do I take a value out of a Maybe monad in ramda-fantasy?如何从 ramda-fantasy 中的 Maybe monad 中获取值?
【发布时间】:2017-12-02 21:07:46
【问题描述】:

我想要一个对 Maybe 执行一些操作的管道,并希望最终返回它的值。目前我正在做:

const data = Maybe(5)
pipe(
  map(add(1)),
  ... other operations
  y => y.getOrElse([])
)(data)

有没有更干净的出路?

【问题讨论】:

  • 不,我想就是这样。然而,用[a] 替换Maybe a 并没有给你太多。它只是可能不会产生结果的计算的另一种表示。我会坚持使用Maybe 抽象。顺便说一句,Maybe 是一个值构造函数的奇怪名称。应该是Just
  • @ftor,我假设“...其他操作”返回一个有意义的数组,而不仅仅是一个包装该值的数组。在这种情况下,[] 可能是适当的默认值,因为它通常用于数组。
  • 我同意 @ftor 的观点,没有什么比这更好的了,你最好还是坚持使用 Maybe。

标签: javascript monads ramda.js ramda-fantasy


【解决方案1】:

唯一的改进是创建一个无点辅助函数

const getOrElse = (defaultValue) => (m) => m.getOrElse(defaultValue);

【讨论】:

    猜你喜欢
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多