问题标签 [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.
scala - Scala中的真实世界函数式编程
呜呜……
Semigroups、Monoids、Monads、Functors、Lenses、Catamorphisms、Anamorphisms、Arrows……这些听起来都不错,经过一两次(或十次)练习,你就能掌握它们的本质。并且Scalaz
,您可以免费获得它们...
然而,就实际编程而言,我发现自己很难找到这些概念的用法。是的,当然我总是在网上找到有人在 Scala 中使用 Monads for IO 或 Lenses,但是......仍然......
我试图找到的是沿着模式的“规定”线的东西。类似于:“在这里,您正在尝试解决这个问题,而解决这个问题的一个好方法就是以这种方式使用镜头!”
建议?
更新:这些方面的东西,一两本书,会很棒(感谢 Paul):Java 核心库中的 GoF 设计模式示例
scala - 试图理解 scalaz state monad
我正在尝试在我的电梯项目中开始使用 scalaz。为此,我正在重写一些代码来满足这种风格。考虑一个用于登录用户的代码:
所以,这应该以某种方式使用状态单子重写。但我就是不明白,如何。试试这个:
UPD:根据答案更新了示例。
关于scalaz中状态单子的任何好的教程/解释,展示如何使用gets
,put
等?
scala - 如何将 Kleisli 组合与返回验证的函数一起使用?
如何组合两个返回验证的函数?以下是我没有奏效的尝试:
这在 Haskell 中有效,所以我希望 Scalaz 也应该有一种方法。
scala - Option、Either 等上的 fold 和 Traversable 上的 fold 有什么关系?
Scalaz 提供了一个为各种 ADT 命名的方法,fold
例如Boolean
、Option[_]
、等。该方法基本上采用与给定 ADT 的所有可能情况相对应的函数。换句话说,如下所示的模式匹配:Validation[_, _]
Either[_, _]
相当于:
一些例子:
同时,还有一个Traversable[_]
类型同名的操作,遍历集合,对其元素进行一定的操作,并累加结果值。例如,
为什么这两个操作使用相同的名称 - fold
/catamorphism?我看不出两者之间有任何相似之处/关系。我错过了什么?
scala - 使用scalaz的promise时调用函数
作为scala和scalaz的新手,在使用promise的时候,遇到了问题。我的代码是这样的。
这个输出如下,看起来很奇怪。好像还没有调用 sleeper 方法,线程阻塞了。-
但是,如果我将睡眠者替换为内联睡眠,它看起来很好 -
在这里输出 -
不明白为什么,请各位大神指点一下?
scala - 映射 Map 的单个条目
我想实现以下目标:
并且该mapKey
函数仅将其第二个参数 ( Int => Int
) 应用于存储在 下的值k
。标准库中有什么东西吗?如果不是,我敢打赌 Scalaz 中会有一些东西。
当然,我可以自己编写这个函数(m.updated(k,f(m(k))
)并且这样做很简单。但是我已经多次遇到这个问题,所以也许它已经完成了?
对于 Scalaz,我想像下面的代码:
scala - 有没有更惯用的方法从 Option[IO[Option[A]] 获取 IO[Option[A]] 然后使用序列和映射连接?
我遇到了很多类似的地方
看到.sequence.map(_.join)
一遍又一遍的重复开始困扰我。有没有更惯用的方式来完成同样的事情?
scala - 是否有将 Option 转换为 scalaz 验证的内置方法?
我一直在寻找,但找不到隐式转换器。显然写一个是微不足道的,但我想知道我是否以某种方式在 scalaz 库中错过了一个!
scala - 在scala中将两个元组组合成一个新的更大元组的干净方法?
假设我有以下元组:
有没有一种友好的方法可以将它们(如果需要,分两步)组合成一个 Tuple7?我真的在寻找组合任意大小的元组的一般答案,并意识到由于最大元组大小的上限而存在限制。我专门寻找一个元组结果,而不是一个集合。
scala - Scala PartialFunction 可以是 Monoid 吗?
我认为PartialFunction可以是Monoid。我的思维过程正确吗?例如,
但当前版本的 Scalaz(6.0.4) 不包括在内。有什么不包括在内的原因吗?