我正试着帮助斯塔克弗洛夫的人,问一个关于未来、可能和Eithers的问题。我的第一个方法是使用一个简单的函数 Maybe 计算一些东西。
Maybe
我在使用圣殿,但这相当于拉姆达或任何其他图书馆。
const S = require("sanctuary"); const transform = S.map( S.pipe( [ S.trim, S.toUpper ] ) ); S.Maybe.Just( [" heello", " world!"] ) .map( transform )
问题是 简单函数 因错误而失败:
类型错误:S.may.Just(…).map不是函数
我一点也不糊涂。我知道也许是单子,单子是函子。每个函子必须有 map 方法,但不知何故可能。只是(哪种类型可能)不是?
map
我做错什么了?
Maybe 是函子并且有 fantasy-land/map 附加,使用 S.map . 另外,你要建立一个 Just 使用 S.Just 或 S.of (S.Maybe) :
fantasy-land/map
S.map
Just
S.Just
S.of (S.Maybe)
const S = require("sanctuary"); const transform = S.pipe ([ S.trim, S.toUpper ]) const maybeTransformed = S.map (transform) (S.Just (['hello', ' world!']))