【发布时间】: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