在 PureScript 中将 # 与 Either 类型一起使用
Using # with Either types in PureScript
我喜欢使用 #
通过几个函数传递一个值,因为它使代码更具可读性:
1 # (\n -> n * 2) # (\n -> n + 1)
不过,我想用 Either
:
(Right 1) ??? (\n -> n * 2) ??? (\n -> n + 1)
A Right
值应该为每个函数解包,而 Left
值应该简单地通过而不改变。换句话说:
(Right x) ??? f == Right f(x)
(Left x) ??? f == Left x
这个已经有运营商了吗?
您正在查找 <#>
,它是 Functor mapFlipped 的运算符别名。 Either
的 Functor 实例将函数应用于 Right
的内容,但保留 Left
值不变。
我喜欢使用 #
通过几个函数传递一个值,因为它使代码更具可读性:
1 # (\n -> n * 2) # (\n -> n + 1)
不过,我想用 Either
:
(Right 1) ??? (\n -> n * 2) ??? (\n -> n + 1)
A Right
值应该为每个函数解包,而 Left
值应该简单地通过而不改变。换句话说:
(Right x) ??? f == Right f(x)
(Left x) ??? f == Left x
这个已经有运营商了吗?
您正在查找 <#>
,它是 Functor mapFlipped 的运算符别名。 Either
的 Functor 实例将函数应用于 Right
的内容,但保留 Left
值不变。