首页 文章
  • 75 votes
     answers
     views

    斯卡拉兹州的monad例子

    我还没有看到很多scalaz state monad的例子 . 有this example但很难理解,似乎只有一个other question堆栈溢出 . 我已经玩了但我会欢迎其他的 . 此外,如果有人可以举例说明为什么 init , modify , put 和 gets 用于那将是很好的 . 编辑:here是一个令人敬畏的2小时状态monad演示文稿 .
  • 23 votes
     answers
     views

    为什么不验证Monad? (scalaz7)

    一个用例示例: def div2(i: Int): Validation[String, Int] = if (i%2 == 0) Validation.success(i/2) else Validation.failure("odd") def div4(i: Int) = for { a <- div2(i) b <- di...
  • 3 votes
     answers
     views

    点读者monad scala

    有没有办法,如何轻松 point Reader 上下文中的值?我可以使用 Reader 对象并忽略上下文: Reader { _ ⇒ 3 } Scalaz似乎有一个特定方法 point . 我明白了,这是在 Applicative 上定义的 . 我想,有一些技巧,如何将值放入 Reader 上下文中 .
  • 6 votes
     answers
     views

    如何在scalaz 7中使用变换器在monad堆栈之间进行转换

    我正在努力用 Scalaz7 来理解monad堆栈和monad变换器 . 我觉得我能绕过一个特定的步骤 . 以下代码在磁盘上查找 ffmpeg 二进制文件,然后创建要运行的可执行命令,然后执行该命令,然后对输出执行一些微不足道的操作 . object Encoder { def findFfmpeg: OptionT[IO, String] = { OptionT[IO, Strin...
  • 10 votes
     answers
     views

    Monadic折叠与状态monad在恒定的空间(堆和堆栈)?

    是否可以在常量堆栈和堆空间中在State monad中执行折叠?或者是一种不同的功能技术更适合我的问题? 接下来的部分将描述问题和激励用例 . 我正在使用Scala,但Haskell中的解决方案也是受欢迎的 . 折叠状态Monad填满堆 假设Scalaz 7.考虑一下州Monad的monadic折叠 . 为了避免堆栈溢出,我们将蹦蹦跳跳 . import scalaz._ import Scal...
  • 334 votes
     answers
     views

    Scalaz迭代:“提升”“EnumeratorT”以匹配“IterateeT”以获得“更大”的monad

    如果我有 EnumeratorT 和相应的 IterateeT 我可以一起运行它们: val en: EnumeratorT[String, Task] = EnumeratorT.enumList(List("a", "b", "c")) val it: IterateeT[String, Task, Int] = IterateeT....
  • 0 votes
     answers
     views

    Scalaz作家Monad和filterM

    我正在通过learning scalaz和Learn You A Haskell For Greater Good工作,并想知道如何将filterM示例从LYAHFGG转换为Scala . fst $ runWriter $ filterM keepSmall [9,1,5,2,10,3] keepSmall 定义为 keepSmall :: Int -> Writer [String] B...
  • 2 votes
     answers
     views

    蒙纳德州Monadic减少

    我试图使用返回 State 的函数来减少状态monad中的列表: def op(t1: T, t2: T): State[S, T] val list: State[S, List[T]] 我想减少列表以获得 State[S, T]
  • 7 votes
     answers
     views

    状态转换与无形状态monad

    Scalaz State monad的modify具有以下签名: def modify[S](f: S => S): State[S, Unit] 这允许状态被相同类型的状态替换,当状态包括无形值(例如 Record ,其类型随着添加新字段而改变)时,该状态不能很好地工作 . 在这种情况下,我们需要的是: def modify[S, T](f: S => T): State[T, U...
  • 1 votes
     answers
     views

    Monad IO catchAll运算符表现出来

    我正在学习scalaZ的monad IO,我无法理解catchAll和catchSome运算符是如何工作的 . 我期待看到一个类似于RxJava的onError或onErrorrResumeNext的行为,但是没有捕获throwable,它只是打破了测试并抛出了NullPointerException . 这是我的两个例子 @Test def catchAllOperator(): Unit ...
  • 1 votes
     answers
     views

    HList Poly1 Mapper未找到参数映射器的隐式值

    我使用无形2.1.0 -scala 2.11,jdk 1.7:我有一个特点 trait Input[T]{ def location:String } object location extends Poly1 { implicit def caseInput[T] = at[Input[T]](l => l.location) } val list = new In...
  • 214 votes
     answers
     views

    好scalaz介绍[关闭]

    最近斯卡拉兹引起了我的注意 . 它看起来很有趣,但我没有找到任何关于图书馆的好介绍 . 似乎scalaz包含了很多来自haskell和数学的想法 . 我发现的大多数文章都假设您已经对这些概念感到满意 . 我正在寻找的是逐步介绍图书馆和基本概念 - 从简单和基本概念到更高级(基于基础) . 我也看了examples,但我很难找到我应该开始学习库的地方 . Can somebody recommend...
  • 22 votes
     answers
     views

    Scala:按键合并 Map

    说我有两张 Map : val a = Map(1 -> "one", 2 -> "two", 3 -> "three") val b = Map(1 -> "un", 2 -> "deux", 3 -> "trois") 我想通过键合并这些...
  • 4 votes
     answers
     views

    scalaz'Functor如何被赋予具有上下文绑定的更高级别的类型?

    我想为以下类定义Functor实例: class RequiresManifest[A: Manifest] { def value: A } class RequiresAnyRef[A <: AnyRef] { def value: A } class RequiresBothManifestAndAnyRef[A <: AnyRef: Manifest] { de...
  • 2 votes
     answers
     views

    Scala:类型推断和子类型/更高级的类型

    我一直在和Scalaz一起玩,以获得scala的一点点haskell感觉 . 为了理解scala中的工作原理,我开始自己实现各种代数结构,并且遇到了Scalaz人员提到过的行为 . 这是我实现仿函数的示例代码: trait Functor[M[_]] { def fmap[A, B](a: M[A], b: A => B): M[B] } sealed abstract class F...
  • 0 votes
     answers
     views

    使用Iterable和scala泛型

    我有两个函数具有完全相同的实现 - 只有一个处理 Option 而另一个处理 Seq . 我想使用泛型将其编写为处理 Iterable 的单个函数,同时在调用代码中保留具体类型 - 如果可能的话? def f[T](a: Seq[Failure \/ T]): Failure \/ Seq[T] = { ??? }def g[T](b: Option[Failure \/ T]): Failur...
  • 29 votes
     answers
     views

    使用返回未来的函数遍历列表和流

    简介 Scala的 Future (new in 2.10和now 2.9.3)是一个应用函子,这意味着如果我们有traversable type F ,我们可以将 F[A] 和函数 A => Future[B] 转换为 Future[F[B]] . 此操作在标准库中可用作Future.traverse . Scalaz 7还提供了一个更通用的 traverse ,如果我们从scala...
  • 9 votes
     answers
     views

    我可以自动实现课程吗?

    在Scalaz中,每个 Monad 实例都自动成为 Applicative 的实例 . implicit val listInstance = new Monad[List] { def point[A](a: => A) = List(a) def bind[A, B](fa: List[A])(f: A => List[B]) = fa flatMap f } List(...
  • 0 votes
     answers
     views

    展开Identity monad的值

    我一直在玩scalaz,我陷入了一个看似微不足道的问题 . 我正在玩阅读器和Kliesli monad,并发现自己有这样的事情: val gr = Reader { (_: Int) + 1 } val a = gr(1) 尽职尽责地回应: a: scalaz.Id.Id[Int] = 2 我现在要做的是从Identity monad中解包Int,因为我应该使用??运营商,有这个签名: fin...

热门问题