为什么验证不是 Monad?

2024-03-24

一个示例用例:

def div2(i: Int): Validation[String, Int] = 
    if (i%2 == 0) Validation.success(i/2)
    else Validation.failure("odd")

def div4(i: Int) = for {
    a <- div2(i)
    b <- div2(a)
} yield b

error: 无法取消应用类型scalaz.Validation[String,Int]进入类型构造函数M[_]按类型类别分类scalaz.Bind

I guess该错误是由于编译器找不到Monad实例为Validation[String, Int]

我可以为自己做一个,比如:

object Instances {
implicit def validationMonad[E] = new Monad[({type L[A] = Validation[E, A]})#L] {
    override def point[A](a: => A) =
        Validation.success(a)
    override def bind[A, B](fa: Validation[E, A])(f: A => Validation[E, B]) =
        fa bind f
}
}

但为什么不Validation已经有了吗?毕竟,Validation已经拥有了bind方法定义。

而且,我不能有import Validation._ and import Instances._不再在一起了(这花了我很长时间才弄清楚......),因为另一个复杂的 error...
模糊的隐含值:两者类似validationMonad(我的实例)和方法ValidationInstances1特质中ValidationInstances2...都匹配一些Functor of Validation...

我应该修改scalaz的源吗?或者我完全错过了一些东西〜?
请帮忙~

我正在使用 scalaz 7.0.0-M2


As 讨论过 https://groups.google.com/d/msg/scalaz/IWuHC0nlVws/syRUkXJklWIJ在 Scalaz 组中,问题似乎是ap会累积错误,而(伪)单子组合只会对值部分进行操作Validation.

因此,一个不能用另一个来表达,因此不存在 monad 实例Validation.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么验证不是 Monad? 的相关文章

  • 从继承的受保护 Java 字段创建公共访问器

    我怎样才能完成以下工作 class Foo extends javax swing undo UndoManager increase visibility works for method override def editToBeUnd
  • 选项包装值是一个好的模式吗?

    我最近写了以下 Scala 代码 val f File pretend this file came from somewhere val foo toFoo io Source fromFile f mkString 我真的不喜欢这种方式
  • 用于真实 Web 项目的 Scala-JS [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有人用过吗Scala JS在真实的网络项目中 但不仅仅适用于普通的JavaScript在隔离环境中替换 我想尽可能多地使用 Scala 我希望可
  • Scala:尝试 .getOrElse 与 if/else

    我是一名相当新的 Scala 开发人员 我是一名经验丰富的 Java 开发人员 到目前为止 我一直很喜欢 Scala 的简单性 我真的很喜欢函数式结构 而且它们常常迫使你编写更简洁的代码 然而最近我注意到 由于舒适性和简单性 我最终使用了在
  • Twitter Future 与 Scala Future 相比有何优势?

    我知道 Scala Future 变得更好的很多原因 有什么理由改用 Twitter Future 吗 除了 Finagle 使用它这一事实之外 免责声明 我在 Twitter 负责 Future 的实施 一点背景知识 在 Scala 有一
  • 什么是 Java 8“视图”?

    我正在观看 Paul Philips 的演讲 http www youtube com watch v TS1lpKBMkgg http www youtube com watch v TS1lpKBMkgg 在 12 48 比较 Scal
  • 映射存在类型列表

    我有一个要映射的存在类型对象的列表 像这样的东西 sealed abstract class IntBox val v Int case object IB1 extends IntBox 1 case object IB2 extends
  • 无法在 SBT 中运行 Apache Spark 相关单元测试 - NoClassDefFoundError

    我有一个简单的单元测试 使用SparkContext 我可以在 IntelliJ Idea 中运行单元测试 没有任何问题 但是 当尝试从 SBT shell 运行相同的测试时 我收到以下错误 java lang NoClassDefFoun
  • 如何设计具有相互依赖的测试的 Specs2 数据库测试?

    有没有一些首选的方法来设计Specs2 http etorreborre github com specs2 测试 有很多测试取决于之前测试的结果 下面 您将找到我当前的测试套件 我不喜欢var位于测试片段之间 不过 它们是 需要的 因为某
  • Spark:出现心跳错误后丢失数据

    我有一个在 Spark 集群上运行的 Python 程序 有四个工作线程 它处理一个包含大约 1500 万条记录的巨大 Oracle 表 检查结果后发现大约有600万条记录没有插入 我的写入功能如下 df write format jdbc
  • Scala 中抛出异常,什么是“官方规则”

    我正在 Coursera 上学习 Scala 课程 我也开始阅读 Odersky 的 Scala 书 我经常听到的是 在函数式语言中抛出异常不是一个好主意 因为它破坏了控制流 并且我们通常返回一个失败或成功的 Either Scala 2
  • Spark日期格式问题

    我在火花日期格式中观察到奇怪的行为 实际上我需要转换日期yy to yyyy 日期转换后 日期应为 20yy 我尝试过如下 2040年后失败 import org apache spark sql functions val df Seq
  • 通用 scala 函数,其输入是变量数量的函数

    我想定义一个函数f需要另一个函数g 我们需要g采取采取n双打 对于某些固定n 并返回一个 Double 函数调用f g 应该返回具体值n 例如 f Math max 2因为 Math sin 具有类型 Double Double gt Do
  • 在 Akka 中配置嵌套 Router

    我有一些嵌套的路由器 应创建它FromConfig 我想要的是这样的 test akka actor deployment worker router round robin nr of instances 5 slave router b
  • 具有两个通用参数的上下文边界

    在 Scala 中 我可以使用上下文边界 def sort T Ordered t Seq T 与以下意思相同 def sort T t Seq T implicit def Ordered T 如果我有一个带有两个泛型参数的类怎么办 IE
  • 使用 net.liftweb.json 或 scala.util.parsing.json 解析大型 (30MB) JSON 文件会出现 OutOfMemoryException。有什么建议吗?

    我有一个包含大量测试数据的 JSON 文件 我想解析这些数据并推送我正在测试的算法 它的大小约为 30MB 包含大约 60 000 个元素的列表 我最初在 scala util parsing json 中尝试了简单的解析器 如下所示 im
  • Scala:什么是 CompactBuffer?

    我试图弄清楚 CompactBuffer 的含义 和迭代器一样吗 请解释其中的差异 根据 Spark 的文档 它是 ArrayBuffer 的替代方案 可以提供更好的性能 因为它分配的内存更少 以下是 CompactBuffer 类文档的摘
  • 理解 Scala FP 库

    只是为了让那些想要开始使用 Scala FP 库 在纯 FP 方面变得更好的人快速清晰地了解 有人能澄清猫和猫效应 猫效应 IO 之间的区别 关系吗 最重要的是 齐奥和莫尼克斯对此有何看法 最后 与 ScalaZ 7 8 有何关系 到目前为
  • 如何在映射中将字符串转换为 Seq[String]

    我有一个Map String String 以及需要的第三方功能Map String Seq String 有没有一种简单的方法来转换它 以便我可以将地图传递给函数 original mapValues Seq 注意mapValues返回地
  • 在 Scala 中将元素追加到列表末尾

    我无法添加 type 元素T到一个列表中List T 我尝试过myList myElement但它似乎创建了一个奇怪的对象并访问myList last始终返回放入列表中的第一个元素 我怎么解决这个问题 List 1 2 3 4 Result

随机推荐

  • 在 pandas 中高效使用替换

    我正在寻找使用replace在 python3 中以有效的方式运行 我拥有的代码正在完成任务 但速度太慢 因为我正在处理大型数据集 因此 每当需要权衡时 我的首要任务是效率而不是优雅 这是我想做的一个玩具 import pandas as
  • listview onScroll 方法中某些项目为空

    我有一个列表视图 我重写了它的 onScroll 事件 以便我可以获取列表视图的第一个可见项目上的文本的第一个字符 我的代码如下 Override public void onScrollStateChanged AbsListView v
  • Material-ui 工具提示无法正常工作

    我正在尝试使用material ui 工具提示 我希望工具提示显示在顶部 即使设置后placement top 演示可以找到here https codesandbox io s yjrq3lkk29 我在这里做错了什么 因为页面没有足够的
  • 仅允许在 WPF 文本框中输入数字

    我想验证用户输入以确保它们是整数 我该怎么做 我想用IDataErrorInfo这似乎是在 WPF 中进行验证的 正确 方法 所以我尝试在我的 ViewModel 中实现它 但问题是我的文本框绑定到一个整数字段 并且不需要验证是否int i
  • 多指标散点图

    假设我有以下数据 data Value 1 1 3 0 1 2 4 0 1 3 51 0 1 4 10 0 1 5 2 0 1 6 17 0 1 7 14 0 1 8 7 0 1 9 2 0 1 10 1 0 df pd DataFrame
  • 在不同的子域上使用 Socket.IO 服务器和客户端

    我有两个子域 socket mydomain com Socket IO 服务器 app mydomain com 我想连接到我的网络套接字的网络应用程序 在 app mydomain com 的登陆页面中 我已链接到 Socket IO
  • 使用 IIS-Express 激活压缩(尤其是动态压缩)

    是否可以在 IIS Express 上启用动态压缩 针对 WCF 服务 这是一个开发环境问题 因此我无法使用完整版本 但我需要弄清楚它在压缩时的表现如何 进入 IIS Express 安装文件夹 programfiles IIS Expre
  • 如何在最新的Next.js中获取服务器端数据?尝试了 getStaticProps 但它没有运行并且未定义

    我正在使用 Next js 开发 Django Rest 框架 但我陷入了从 API 获取数据的困境 我在这个网址中有数据http 127 0 0 1 8000 api campaigns当我访问该网址时 我会看到数据 问题是当我使用 Ne
  • 对具有大量零特征的数据进行归一化/标准化是否有利

    我拥有大约 60 个特征的数据 在我的训练数据中 大多数情况下大多数情况下都为零 只有 2 3 列可能有值 准确地说是其性能日志数据 但是 我的测试数据在其他一些列中会有一些值 我已经完成了归一化 标准化 分别尝试了两者 并将其提供给 PC
  • 未处理的承诺拒绝 - 错误:发送后无法设置标头

    我是节点新手 我有一个简单的情况 我正在发布到节点 express 应用程序上的端点 问题是我得到 POST api v2 user 500 25 378 ms 54 node 19024 UnhandledPromiseRejection
  • 带有嵌套 JSON 的 React/Redux mapStateToProps

    我有一个正在解析 JSON 的 redux 组件 在底部 但我不知道如何获取嵌套的子对象 我认为我没有正确理解 mapStateToProps 的工作原理 控制台日志正在转储子对象 但是当我尝试访问 services name 时 我得到
  • Android 数据库陌生列表列

    我在读取 Android SQLite 数据库中的列的两种方法之间得到不一致的结果 首先 这是根据此处接受的答案的数据库升级例程的一部分 将 SQLite 数据库从一个版本升级到另一版本 https stackoverflow com qu
  • CMake add_subdirectory()

    介绍 我正在尝试使用 CMake 来获取跨平台编译脚本 适用于 Windows32 上的 VS 9 0 和 Unix 上的 Makefiles 我遇到了关于 add subdirectory 的一些我无法理解的事情 让我向你展示我的代码 C
  • React Native - 剪贴板中更改的监听器

    有没有办法在 React Native 中添加剪贴板数据更改的侦听器 基本上取决于用户是否在剪贴板中复制了某些内容 无论是在应用程序内部还是在后台应用程序 我想执行一些方法 React Native 没有为您提供监听此类事件的方法 但您有两
  • View 无法锚定到父 CoordinatorLayout

    我刚刚将 appcompat 库从 23 1 1 更新到 23 2 现在应用程序停止处理 java lang IllegalStateException 视图无法锚定到父 CoordinatorLayout java lang Illega
  • 在 Swift 中将字典转换为 JSON

    我已经创建了下一个词典 var postJSON ids 0 answersArray 0 ids 1 answersArray 1 ids 2 answersArray 2 as Dictionary 我得到 2 B 1 A 3 C 那么
  • Angular 1 - 获取当前URL参数

    我想从当前 URL 中提取数据并在控制器中使用它 例如我有这个网址 app dev backend surveys 2 我想要提取的位 应用程序 dev 后端 type id Angular 中有什么可以帮助我完成这项任务吗 从 URL 获
  • Highcharts 日期时间本地化

    有人可以告诉我如何本地化在 HighCharts js 文件中硬编码的日期相关字符串吗 例如 我希望图表显示本地化值 F v 而不是 x 轴中默认的 二月 日期标签 我尝试在实例化图表之前通过在语言对象上设置选项来实现本地化 Highcha
  • 数据透视表 SQL 中的水平总计

    我有这个查询工作 select cap idPlanoContasFin 3684 2234 2 from select cap idPlanoContasFin cap idempresa sum cap valorfatura as S
  • 为什么验证不是 Monad?

    一个示例用例 def div2 i Int Validation String Int if i 2 0 Validation success i 2 else Validation failure odd def div4 i Int f