问题标签 [scalaz7]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
270 浏览

scala - Scalaz 7 - 为什么使用类型别名会导致 Reader 的类型类解析不明确

测试代码:

这与 Scala 的类型构造函数推理票证的高阶统一有关吗?如果是这样(即使不是),你能描述一下在 a 和 b 情况下会发生什么吗?

您是否有关于何时使用类型 lambda 以及何时使用类型别名的指导方针,以便从长远来看一切正常而不会出现意外错误?

0 投票
2 回答
1493 浏览

validation - 将验证与 scalaz 7 相结合

给定以下功能:

我想将它们组合起来,例如构建一个函数,该函数调用foo然后最终调用bar中的每个元素Seq,例如得到一个ValidationNEL[String,Seq[C]]

Scalaz 7 中的文档非常短,我找不到任何相关示例。

0 投票
2 回答
5172 浏览

scala - 为什么验证不是 Monad?

一个示例用例:

错误:无法将类型取消应用到按类型类分类的scalaz.Validation[String,Int]类型构造函数中M[_]scalaz.Bind

这个错误是由编译器找不到Monad实例引起的Validation[String, Int]

我可以为自己制作一个,例如:

但为什么还没有Validation呢?毕竟,Validation已经bind定义了方法。

此外,由于另一个复杂的错误... 模棱两可的隐含值​​:像两者(我的实例)和import Validation._特征中的方法...两者都匹配一些...import Instances._
validationMonadValidationInstances1ValidationInstances2Functor of Validation

我应该修改scalaz的来源吗?或者我完全错过了什么~?
请帮忙~

我正在使用 scalaz 7.0.0-M2

0 投票
1 回答
2824 浏览

scala - Scalaz7中的“序列”在哪里

我正在学习 Scalaz,并且我有一个已经使用 Scalaz7 的项目。在这个问题之后,我想使用该功能

(并不是说自己很难写)。但是上述问题提到了Scalaz6。

在 Scalaz7 中哪里可以找到序列函数?

0 投票
4 回答
2182 浏览

scala - 通过 Scalaz 找到我的方式

可能重复:
好的scalaz介绍

我想了解更多关于 Scalaz 的信息,可能使用 Scalaz7 来避免在宣布稳定后重新连接我的大脑。我的问题是 Scalaz 包含很多功能。虽然其中大部分是独立于其他部分的,但我想对 Scalaz 提供的全局功能及其组织方式有一个鸟瞰图。据我所知,Scalaz 提供了,除其他外,

  • Functor,ApplicativeMonad特征,
  • 新的单子,例如Validation(编辑:原来它只是一个应用程序)
  • monad 转换器 ( OptionT, EitherT....)
  • Itereatees
  • Lenses
  • Zippers

除此之外,还有很多隐式转换,以及新的构造函数,例如some与标准库重叠但在类型方面表现更好

我对这些结构中的大多数都有基本的掌握,但我对任何概念都不流利。

您对学习库的顺序有什么建议,模块之间存在哪些逻辑依赖关系?更一般地说,我在哪里可以找到图书馆的高级概述?

编辑似乎大多数答案都是针对学习函数式编程的基本组成部分,比如单子,所以我会尝试更精确。我有 Haskell 的基本知识和数学家背景,所以我的问题与范畴论或基本函数式编程无关。

我的问题是 Scalaz 是一个巨大的库。我不知道在哪里可以找到什么,哪些方法对各种数据类型可用或有用。例如,我真正需要的是一张地图,它会告诉我,当我想要迭代需要处理的资源时,我可能想要考虑迭代对象以及我可以用它做什么类型的操作。更像是图书馆可用功能的全景。

0 投票
1 回答
203 浏览

logging - Scalaz 7:将 Either 中的值转换为普通值加上记录错误的惯用方式?

给定一个函数,在记录 s 时f: A => E \/ B收集B某些 s 列表结果的惯用方法是什么?AE

我想出了以下内容(部分是在回答这个 SO question时):

有没有更短/更好/限制更少/更通用的方法?

0 投票
4 回答
378 浏览

list - Scala:从列表中提取重复值

我经常需要检查许多值是否相等,以防提取共同值。也就是说,我需要一个功能如下:

假设一个有一个会添加tailOption到 seqs 的皮条客(写一个或在 scalaz 中有一个是微不足道的),一个实现看起来像

Scalaz 中是否有类似的东西——可能更普遍——或者更简单的编写方式?

0 投票
1 回答
393 浏览

scala - 在 Play 中使用 Scalaz7

我在使用 Scalaz7 和 Play 时遇到了一些麻烦。现在我正在使用标准的 Play 发行版和 Scala 2.9.1 和 scalaz-core 7.0-SNAPSHOT。它位于存储库http://repo.typesafe.com/typesafe/repo/中,这似乎不是官方的。我不确定这一点,但已经有http://repo.typesafe.com/typesafe/snaphots/http://repo.typesafe.com/typesafe/releases/我不知道repo是否得到官方认可并得到维护。它现在已经起来了,但几天前它似乎消失了。

快照存储库中,我看到了 scalaz-core 7.0-M3,但仅适用于 Scala 2.9.2。我什至不确定 7.0-SNAPSHOT 和 7.0-M3 之间的哪一个是 scalaz 的最新版本,尽管我发现的大多数博客文章和文档似乎都引用了 7.0-M3 版本。

所以,考虑到我正在开发一个使用 Scalaz 的 Play 应用程序,现在我花了一些时间学习 scalaz 7,回到 scalaz 6 似乎太麻烦了,

在游戏中使用 Scalaz 7 的正确方法是什么?我应该像现在一样去非官方回购,还是将项目升级到 Scala 2.9.2?是玩!已经支持 2.9.2?如果没有,我应该如何升级?

0 投票
1 回答
1170 浏览

scala - 在 Scalaz7 中管理导入

我在一个项目中使用 scalaz7,有时我会遇到导入问题。最简单的入门方法是

但有时这会导致冲突。到目前为止,我一直在做以下稍微痛苦的过程:

  • 制定一个需要与我的实际代码相同的导入的最小示例
  • 将该示例复制到单独的项目中
  • 使用选项编译它-Xprint:typer以找出代码在隐式解析后的样子
  • 在原始项目中导入所需的隐式。

虽然这可行,但我想简化它。我看到 scalaz7 有更细粒度的导入,但我不完全理解它们是如何组织的。例如,我看到一个可以做

等等。

这些子导入是如何组织的?

例如,假设我想使用验证。我需要什么,例如注入验证隐式并进行以下编译?

ValidationNEL[A, B]一个实例怎么样Applicative

0 投票
1 回答
881 浏览

scala - scalaz(scalaz7)中的全局默认隐式

当我使用 Scalaz 进行编码时,我经常遇到问题,即范围没有隐含。我认为在庞大的 scalaz 包中应该有一些默认的隐含,但要么我不知道在哪里,要么没有。

假设我们想要show任何Anyscalaz (我使用的是 scalaz 7):

这是行不通的,因为Show[Any]范围没有隐含。

为什么Scalaz不提供它?使用一些 global 的好方法是Show[A]什么?我的意思是这样的:

我觉得倒是一样Equal

编辑

我已经尝试过添加答案中提到的方法,import scalaz.syntax.ShowSyntax但这并不能解决我的问题。看:

编译器还想要一些implicit scalaz.Show[Any].