다음 코드 def f(chars: List[Char]): List[List[Char]] = chars match {
case Nil => List(Nil)
case x :: xs => for {
v <- f(xs)
} yield List(x) :: v
}
는 - type mismatch; found : Li
나는이 모나드 클래스가 있다고 가정 scala> for { (a, b) <- Foo(List(1 -> "x")) } yield a
res0: Foo[Int] = Foo(List(1))
그리고 여기에 2.10에서 같은 일이 : case class Foo[A](xs: List[A]) {
def map[B](f: A => B) = Foo(xs ma
나는 네 가지 유형의 A, B, C 및 D, 유형 Future[Option[A]]과 세 가지 기능의 초기 값 x 있습니다. x으로 시작하는 for으로 시작하는 이해력을 작성하여 세 가지 기능의 "구성"이 될 Future[Option[D]] 유형의 값을 얻는 방법은 무엇입니까?
나는 Effect을 그들에게 전화, 항목의 설정을 할 수 있고, 나는 효과의 목록을 반복 만이 반환해야 possibleEffects : Set[Effect] 의 세트가 Cause의 목록을 가지고 먼저 Cause 각 Effect을 찾았습니다. 하나 이상의 효과를 유발하는 중첩 원인이있을 수 있으며, 그 결과가 세트에 있어야합니다. 나는 그것이 많은 시간을 실
:에 for {
harpo<-list1 if harpo.length>0
groucho<-list2
chico<-list3
} yield (harpo, groucho, chico)
이 번역 : 나는 filter에 의해 반환 된 불필요한 중간 컬렉션에 대해 걱정했다 list1.filter(_.length>0).flatMap(ha
내가 이해할 때 요소가 이미 목록에 있는지 확인하는 방법은 무엇입니까? 예를 들어 다음과 같은 이해에서 중복 된 숫자를 제한하고 싶습니다. 고유 번호를 전혀 찾고 있지 않지만 if 조건을 통해 방지하려고합니다. 내가 틀렸다면 누군가가 나 수정하시기 바랍니다, 당신은 (내가 아는 한 그것을 만들로 [x for x in [1,2,3,1,2,3]]
내가 [x
가드 인 경우 어떻게 사용합니까? type Error = String
type Success = String
def csrfValidation(session:Session, body:JsValue):Either[Error,Success] = {
val csrfRet = for (csrfSession <- csrfStateSessi
이런 식으로 guard가있는 이해력을 사용하면 오류가 발생합니다. 코드 : for {
foo <- Left[String,String]("teststring").right
bar <- Right[String,String]("teststring").right if (foo==bar)
} yield (bar)
오류 : error: type
가 나는 가능한 키를 통과하고 싶은 val myMap: Map[String, List[Int]] = Map("a" -> List(1,2,3),
"b" -> List(4,5,6),
"d" -> List(7))
val possibleKeys: List[String] = List("c","a", "b", "e
필자는 타이핑이 스칼라에서 큰 의미를 지니고 있으며 이상적으로는 패턴 매칭과 같은 것을 사용하여 타입 캐스팅이나 지저분한 솔루션을 사용하는 것이 이상적이라고 생각합니다. 그러나 일반적인 수퍼 유형의 하위 유형 인 항목 목록이나 시퀀스를 반복 할 때 해당 하위 유형의 시퀀스에서 특정 하위 유형의 항목 만 반복 할 경우 어떻게 처리 할 수 있는지 이해할 수