如何映射包含在Maybe或任何其他Monad中的数组?现在我正在使用
const map2 = curry(
(fn, xs) => map(map(fn))(xs)
)
const data = [1, 2]
pipe(
Maybe,
map2(add(1))
)(data)
答案 0 :(得分:0)
很难知道,因为不清楚为什么需要将数组包装在一个也许中。是可能不存在的数组还是数组中的值?因为您要映射到数组,所以似乎数组中的值可能不存在,在这种情况下,您确实需要一个mays数组。
基本上,您的解决方案是两次映射的正确方法,但是在使用adts时很少需要这样做。
我立即想到的一件事是用一个空数组的默认值折叠可能的列表,然后正常地将其映射。收获是,当您发现自己需要两次绘制地图时,可能应该尝试重新制定方法。