问题标签 [scalaz]

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 回答
263 浏览

scala - 如何给 scalaz 的 Functor 赋予具有上下文绑定的更高种类的类型?

我想为以下类定义一个 Functor 实例:

这可能吗 ?或者,可以定义一个 'BoundedFunctor 特征吗?像这样的东西:

这是我的励志示例:如何为 TypedConverter 类定义 Functor。

这种更高种类的类型对其类型参数有两个约束,第一个是 Manifest,因为它用于“canConvert”的实现,第二个是 AnyRef,因为 unmarshal 需要一个 Object。

实际上我正在尝试创建一个 InvariantFunctor,但 Functor 会开始。

0 投票
1 回答
1170 浏览

scala - 我可以使用 monad 转换器来简化这个组合吗?

假设我有

我想得到类型的结果,VS[Option[B]]但如果v是 a Success(None),结果也应该是 a Success(None)。这是一个例子:

然后:

成功案例是:

空壳是:

有没有“更好”的方式来做到这一点(可能涉及 kleisli 组合或单子变换器)?

0 投票
1 回答
815 浏览

scalaz - 验证是 SemiGroup/Monoid :使用 |+| 不工作

我的印象是 Validation 可以用作 Monoid/SemiGroup 我在 scala 2.9.2 和 scalaz 7 快照下尝试了以下代码

我期待一个Success(3)

然后

failureA |+| failureBres1: scalaz.Validation[java.lang.String,Nothing] = Failure(AB) 按预期给出

success1 |+| failureA按预期失败

为什么|+|onSuccess不起作用?这是一个错误还是我在这里错过了什么

0 投票
1 回答
188 浏览

scala - 文档中对 ->>>[_, _ ] 和 ~> 的引用

我在哪里可以找到 Lang 规范或任何博客中的参考资料如何阅读这些结构:

或者

如果它是类型名称 - 那么代码 F[A] ->>> F[B]不应该是可编译的,但它是

0 投票
1 回答
893 浏览

scala - 内部具有幺半群和函数的元组的应用实例

我试图将之前遇到的 haskell 示例转换为 scalaz。原来的例子是这样的:

据我所知,它使用了这个实例。

它不会从字面上转换为 scalaz:

虽然,我已经寻找了一个实例,它似乎在那里(再次,据我所知)。

所以,问题是:为什么它不能这样工作?或者我错过了什么/没有得到正确的?

0 投票
1 回答
988 浏览

scala - 使用 Scalaz 在 Scala 中进行验证的异步计算

在编写一个完全异步的库来访问远程服务(使用 Play2.0)时,我正在使用PromiseValidation创建非阻塞调用,该调用具有一次显示失败和有效结果的类型。

Promise来自 Play2-scala,其中Validation来自 scalaz。

所以这里是此类函数的示例类型

  • F ::A => Promise[Validation[E, B]]
  • G ::B => Promise[Validation[E, C]]

到目前为止,很好,现在如果我想编写它们,我可以简单地使用Promise呈现 a的事实flatMap,所以我可以用一个理解来完成

好的,我在这里解决了我的问题,因为我没有Validation在理解范围内重用结果。所以如果我想重用xin g,我可以这样做

很公平,但是这种样板会一遍又一遍地污染我的代码。这里的问题是我有一种像M[N[_]].

在这个阶段,f°编程中是否有任何结构可以通过轻松跳过secong级别来使用这种结构:

现在,下面是我如何实现类似的东西。

我创建了一种 Monadic 结构,将两个层次合二为一,让我们说用两种方法ValidationPromised对类型进行拉皮条:Promise

这让我可以做这样的事情

正如我们所看到/~~>的,它非常类似于flatMap但跳过了一个级别。问题在于冗长(这就是为什么 Scala 中存在“for-comprehension”而 Haskell 中存在“do”的原因)。

另一点,我也有/~>map但在第二级(而不是 Valid 类型 -第三级)

所以我的第二个问题是前一个问题的推论......我是否正在通过这种结构来实现可持续的解决方案?

抱歉这么久

0 投票
1 回答
173 浏览

scala - Scalaz 和 REPL

我已成功将 scalaz 添加到 scala repl (2.9.1) 并尝试了一些没有问题的基本示例,例如: List(10, 20, 30) <*> (List(1, 2, 3) map ((_: Int) * (_: Int)).curried)

或者

List(10, 20, 30) |@| List(1, 2, 3) apply (_ * _)

但是,map 的别名,即 °,如本示例所示 http://scalaz.github.com/scalaz/scalaz-2.9.1-6.0.4/doc.sxr/scalaz/example/ExampleApplicative.scala.html #23569

不被认可,我得到了一个

error: value ° is not a member of List[Int]

也许我使用了错误的字符?上面示例中的复制粘贴会吞噬特殊字符...

任何指导将不胜感激!:)

0 投票
3 回答
2747 浏览

scala - Scala 中的 Comonad 示例

什么是 Comonad,如果可以用 Scala 语法描述的话。我找到了 scalaz库实现,但不清楚它在哪里有用。

0 投票
1 回答
920 浏览

scala - 展平嵌套的 Scalaz 验证

我对 scalaz 还很陌生,我已经从验证开始。

我有一些表单的验证功能:

然后我使用 applicative 样式来组合多个验证,然后调用另一个也返回验证的函数:

在哪里,

但是,当调用上面的结果类型是:

我可以通过使用两个函数在结果上调用 fold 来解压它,第一个只是将 NEL 作为失败传播,第二个只是传播其参数:

这有效并返回正确的类型和结果。但是,它感觉不是正确的解决方案,所以我必须遗漏一些东西。我需要做些什么来避免最后出现这种可怕的折叠?

0 投票
5 回答
6015 浏览

scala - 在 scala 中应用几个字符串转换

我想在 scala 中以功能方式对字符串执行几个有序和连续的 replaceAll(...,...) 。

什么是最优雅的解决方案?斯卡拉兹欢迎!;)