Questions tagged «scalaz»

1
Scalaz迭代:“提升” EnumeratorT以匹配“ IterateeT”以获得“更大”的单子
如果有EnumeratorT和,IterateeT我可以一起运行它们: val en: EnumeratorT[String, Task] = EnumeratorT.enumList(List("a", "b", "c")) val it: IterateeT[String, Task, Int] = IterateeT.length (it &= en).run : Task[Int] 如果枚举数monad比iteratee monad“更大”,我可以使用up或更广泛地说,Hoist“提升” iterae以匹配: val en: EnumeratorT[String, Task] = ... val it: IterateeT[String, Id, Int] = ... val liftedIt = IterateeT.IterateeTMonadTrans[String].hoist( implicitly[Task |>=| Id]).apply(it) (liftedIt &= en).run: Task[Int] 但是,当iteratee monad比枚举器monad“更大”时,我该怎么办? …

8
良好的斯卡拉兹介绍[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 6年前关闭。 改善这个问题 最近,scalaz引起了我的注意。看起来很有趣,但是我没有找到关于该库的任何好的介绍。似乎scalaz融合了Haskell和数学的许多思想。我发现的大多数文章都假定您已经对这些概念感到满意。 我正在寻找的是对库和基础概念的逐步介绍-从简单的基础概念到更高级的概念(以基础为基础)。 我也查看了示例,但是我很难找到应该开始学习图书馆的重点。 有人可以向我推荐一些好的scalaz简介或教程(涵盖基础知识和高级概念)吗?或在答案中给我起点。 更新资料 谢谢大家的精彩回答!我总结了所有答案,并在博客中添加了更多链接: https://github.com/OlegIlyenko/hacking-scala-blog/blob/master/posts/Scalaz-Resources-For-Beginners.md 对于那些努力寻找Scalaz的API文档的人,这里是: http://docs.typelevel.org/api/scalaz/nightly/index.html#package
215 scala  scalaz 

1
使用Scalaz 7 zipWithIndex / group枚举避免内存泄漏
背景 如该问题所述,我正在使用Scalaz 7迭代器在恒定堆空间中处理大量(即无边界)数据流。 我的代码如下所示: type ErrorOrT[M[+_], A] = EitherT[M, Throwable, A] type ErrorOr[A] = ErrorOrT[IO, A] def processChunk(c: Chunk, idx: Long): Result def process(data: EnumeratorT[Chunk, ErrorOr]): IterateeT[Vector[(Chunk, Long)], ErrorOr, Vector[Result]] = Iteratee.fold[Vector[(Chunk, Long)], ErrorOr, Vector[Result]](Nil) { (rs, vs) => rs ++ vs map { case (c, i) => processChunk(c, i) …
106 scala  scalaz  iterate 

2
Reader Monad用于依赖性注入:多个依赖性,嵌套调用
当被问及Scala中的依赖注入时,有很多答案指向使用Reader Monad,要么是Scalaz的,要么是自己滚动的。有很多非常清晰的文章描述了该方法的基础(例如Runar的演讲,Jason的博客),但是我没有找到一个更完整的示例,而且我看不到该方法相对于其他方法的优势。传统的“手动” DI(请参阅我编写的指南)。我很可能错过了一些重要的观点,因此提出了问题。 举例来说,假设我们有以下类: trait Datastore { def runQuery(query: String): List[String] } trait EmailServer { def sendEmail(to: String, content: String): Unit } class FindUsers(datastore: Datastore) { def inactive(): Unit = () } class UserReminder(findUser: FindUsers, emailServer: EmailServer) { def emailInactive(): Unit = () } class CustomerRelations(userReminder: UserReminder) { def retainUsers(): …

1
如何用scalaz-stream替换编写为顺序状态转换流的程序?
我试图了解如何重组程序,该程序以前是作为状态转换序列编写的: 我有一些业务逻辑: type In = Long type Count = Int type Out = Count type S = Map[Int, Count] val inputToIn: String => Option[In] = s => try Some(s.toLong) catch { case _ : Throwable => None } def transition(in: In): S => (S, Out) = s => { val …

3
Scalaz State Monad示例
我还没有看到斯卡拉兹州单子的许多例子。有这个例子,但是很难理解,而且似乎在堆栈溢出上只有另一个问题。 我将发布一些我曾玩过的示例,但我欢迎其他示例。此外,如果有人可以提供上的例子,为什么init,modify,put和gets用于将是巨大的。 编辑:这是一个关于状态monad的2小时真棒演示。

9
在Scala中执行HTTP请求
我正在尝试向Web服务发出简单的POST请求,该请求会在Scala中返回一些XML。 看来Dispatch是用于此任务的标准库,但我找不到有关它的文档。我上面链接的主站点详细解释了什么是诺言以及如何进行异步编程,但实际上并未记录API。有一个周期表-看起来有点吓人-但它仅对已经知道要做什么并且只需要提醒隐式语法的人有用。 Scalaz似乎也有一些用于HTTP的功能,但我也找不到任何文档。
74 http  scala  scalaz 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.