加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scalaz验证和列出monad

发布时间:2020-12-16 18:59:02 所属栏目:安全 来源:网络整理
导读:我想提出类似于以下内容的东西: val s: Validation[String,Int] = 1.successdef s2(i: Int): Validation[String,Int] = i.successval result = for { i - s j - List(1,2) k - s2(j)} yield "fine"; 上面的代码没有编译,我理解,从语法上讲它没有意义. 我试
我想提出类似于以下内容的东西:

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";

上面的代码没有编译,我理解,从语法上讲它没有意义.

我试图以monadic方式执行验证列表.我如何实现这一目标?

解决方法

如果您有A的验证列表,则可以将其转换为使用序列的A列表的验证:

List(1,2).map(s2).sequence[({type l[a]=Validation[String,a]})#l,Int]

(如果我理解正确的话).所以你得到了

val result = for {
  i <- s
  k <- List(1,Int] 
} yield "fine"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读