for-comprehension

    0热度

    3回答

    我试图构造具有唯一数字的所有N位数长整数列表, 但我无法弄清楚如何推广它,作为较大的一部分问题,为此我需要具有唯一数字的所有(1到N)数字长号的列表。 这里是n的手写代码= 4: for { x1 <- 1 to 9 x2 <- 1 to 9 x3 <- 1 to 9 x4 <- 1 to 9 if (x1 != x2 && x2 != x3 &&

    24热度

    1回答

    假设我有这样的单子类: case class Foo[A](xs: List[A]) { def map[B](f: A => B) = Foo(xs map f) def flatMap[B](f: A => Foo[B]) = Foo(xs flatMap f.andThen(_.xs)) def withFilter(p: A => Boolean) = {

    2热度

    2回答

    我有四种类型A,B,C和D,类型Future[Option[A]]和三个函数的初始值x:f1: A => Option[B],f2: B => Future[Option[C]]和f3: C => D。 我该如何编写for理解,从x开始,导致Future[Option[D]]这个类型的值将是这三个函数的“组合”?

    3热度

    1回答

    从第一次读的是: for { harpo<-list1 if harpo.length>0 groucho<-list2 chico<-list3 } yield (harpo, groucho, chico) 转换为: list1.filter(_.length>0).flatMap(harpo => list2.flatMap(groucho=

    57热度

    4回答

    当以后应用像map,flatmap等函数时,使用filter而不是filter是否总是更高效? 为什么只支持map,flatmap和foreach? (像forall这样的预期功能也存在)

    0热度

    3回答

    当我在理解时,如何检查元素是否已经在列表中? 例如说在下面的理解我想限制重复数字尽管我根本不寻找唯一的数字,我想通过if条件来防止。有人请纠正我,如果我错了; [x for x in [1,2,3,1,2,3]] 我在寻找类似 [x for x in [1,2,3,1,2,3] if not in self]

    0热度

    1回答

    我目前在换理解的结果进行模式匹配如下 val validXsrf = for( cookie <- request.cookies.get("XSRF-TOKEN"); header <- request.headers.get("X-XSRF-TOKEN"); if cookie.value == header) yield true; validXsrf mat

    17热度

    2回答

    我有一个应用程序可以对不同的后端系统进行大量调用,希望能够使用理解来简化后端系统中的流程。 我期待结合EitherT(scalaz)和Future(scala 2.10),这样我就可以捕获第一个潜在错误(其未来或后端系统问题),并向最终用户返回适当的消息。我已经快速查看了一个scalaz验证,但是捕获第一个错误而不是所有错误的建议是使用EitherT。 我想在REPL一个简单的例子,第一个,但我发

    3热度

    2回答

    如果警卫有什么用途? type Error = String type Success = String def csrfValidation(session:Session, body:JsValue):Either[Error,Success] = { val csrfRet = for (csrfSession <- csrfStateSessionValida

    0热度

    2回答

    当我以这种方式使用与如果警卫的理解时,我得到一个错误。 代码: for { foo <- Left[String,String]("teststring").right bar <- Right[String,String]("teststring").right if (foo==bar) } yield (bar) 错误: error: type mismatch;