san*_*jib 6 validation scala scalaz
我想提出类似于以下内容的东西:
val s: Validation[String, Int] = 1.success
def s2(i: Int): Validation[String, Int] = i.success
val result = for {
i <- s
j <- List(1, 2)
k <- s2(j)
} yield "fine";
Run Code Online (Sandbox Code Playgroud)
上面的代码没有编译,我理解,从语法上讲它没有意义.
我试图以monadic方式执行验证列表.我如何实现这一目标?
如果您有一个验证列表A,您可以将其转换为A使用列表的验证sequence:
List(1, 2).map(s2).sequence[({type l[a]=Validation[String, a]})#l, Int]
Run Code Online (Sandbox Code Playgroud)
(如果我理解正确的话).所以你得到了
val result = for {
i <- s
k <- List(1, 2).map(s2).sequence[({type l[a]=Validation[String, a]})#l, Int]
} yield "fine"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1891 次 |
| 最近记录: |