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 次 |
最近记录: |