问题标签 [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 投票
5 回答
3994 浏览

scala - Scala中的真实世界函数式编程

呜呜……

Semigroups、Monoids、Monads、Functors、Lenses、Catamorphisms、Anamorphisms、Arrows……这些听起来都不错,经过一两次(或十次)练习,你就能掌握它们的本质。并且Scalaz,您可以免费获得它们...

然而,就实际编程而言,我发现自己很难找到这些概念的用法。是的,当然我总是在网上找到有人在 Scala 中使用 Monads for IO 或 Lenses,但是......仍然......

我试图找到的是沿着模式的“规定”线的东西。类似于:“在这里,您正在尝试解决这个问题,而解决这个问题的一个好方法就是以这种方式使用镜头!”

建议?


更新:这些方面的东西,一两本书,会很棒(感谢 Paul):Java 核心库中的 GoF 设计模式示例

0 投票
2 回答
988 浏览

scala - 试图理解 scalaz state monad

我正在尝试在我的电梯项目中开始使用 scalaz。为此,我正在重写一些代码来满足这种风格。考虑一个用于登录用户的代码:

所以,这应该以某种方式使用状态单子重写。但我就是不明白,如何。试试这个:

UPD:根据答案更新了示例。

关于scalaz中状态单子的任何好的教程/解释,展示如何使用getsput等?

0 投票
1 回答
1104 浏览

scala - 如何将 Kleisli 组合与返回验证的函数一起使用?

如何组合两个返回验证的函数?以下是我没有奏效的尝试:

这在 Haskell 中有效,所以我希望 Scalaz 也应该有一种方法。

0 投票
2 回答
2642 浏览

scala - Option、Either 等上的 fold 和 Traversable 上的 fold 有什么关系?

Scalaz 提供了一个为各种 ADT 命名的方法,fold例如BooleanOption[_]、等。该方法基本上采用与给定 ADT 的所有可能情况相对应的函数。换句话说,如下所示的模式匹配:Validation[_, _]Either[_, _]

相当于:

一些例子:

同时,还有一个Traversable[_]类型同名的操作,遍历集合,对其元素进行一定的操作,并累加结果值。例如,

为什么这两个操作使用相同的名称 - fold/catamorphism?我看不出两者之间有任何相似之处/关系。我错过了什么?

0 投票
1 回答
165 浏览

scala - 使用scalaz的promise时调用函数

作为scala和scalaz的新手,在使用promise的时候,遇到了问题。我的代码是这样的。

这个输出如下,看起来很奇怪。好像还没有调用 sleeper 方法,线程阻塞了。-

但是,如果我将睡眠者替换为内联睡眠,它看起来很好 -

在这里输出 -

不明白为什么,请各位大神指点一下?

0 投票
3 回答
614 浏览

scala - 映射 Map 的单个条目

我想实现以下目标:

并且该mapKey函数仅将其第二个参数 ( Int => Int) 应用于存储在 下的值k。标准库中有什么东西吗?如果不是,我敢打赌 Scalaz 中会有一些东西。

当然,我可以自己编写这个函数(m.updated(k,f(m(k)))并且这样做很简单。但是我已经多次遇到这个问题,所以也许它已经完成了?

对于 Scalaz,我想像下面的代码:

0 投票
2 回答
827 浏览

scala - 有没有更惯用的方法从 Option[IO[Option[A]] 获取 IO[Option[A]] 然后使用序列和映射连接?

我遇到了很多类似的地方

看到.sequence.map(_.join)一遍又一遍的重复开始困扰我。有没有更惯用的方式来完成同样的事情?

0 投票
2 回答
1851 浏览

scala - 是否有将 Option 转换为 scalaz 验证的内置方法?

我一直在寻找,但找不到隐式转换器。显然写一个是微不足道的,但我想知道我是否以某种方式在 scalaz 库中错过了一个!

0 投票
2 回答
13708 浏览

scala - 在scala中将两个元组组合成一个新的更大元组的干净方法?

假设我有以下元组:

有没有一种友好的方法可以将它们(如果需要,分两步)组合成一个 Tuple7?我真的在寻找组合任意大小的元组的一般答案,并意识到由于最大元组大小的上限而存在限制。我专门寻找一个元组结果,而不是一个集合。

0 投票
3 回答
1479 浏览

scala - Scala PartialFunction 可以是 Monoid 吗?

我认为PartialFunction可以是Monoid。我的思维过程正确吗?例如,

但当前版本的 Scalaz(6.0.4) 不包括在内。有什么不包括在内的原因吗?