Описание тега for-comprehension

NoneFor-complation - это конструкция на языке Scala, позволяющая легко перебирать одну или несколько коллекций.
4 ответа

Поведение вариантов внутри для понимания является Scala

Два вопроса новичка. Кажется, что for понимание знает о Options и может автоматически пропустить None и развернуть Some например, val x = Map("a" -> List(1,2,3), "b" -> List(4,5,6), "c" -> List(7,8,9)) val r = for {map_key <- List("WRONG…
24 фев '18 в 11:23
1 ответ

Поток `Попробуйте через-для понимания

Вызванный другим вопросом (который впоследствии был отредактирован), я хотел попробовать, насколько легко было бы связывать вызовы в Scala 2.10. Try построить (см. эту презентацию), используя для понимания. Идея состоит в том, чтобы получить список …
4 ответа

Как использовать Either внутри для понимания?

У меня есть для понимания, как это: for { (value1: String, value2: String, value3: String) <- getConfigs(args) // more stuff using those values } getConfigs возвращает Either[Throwable, (Seq[String], String, String)] и когда я пытаюсь скомпилиров…
02 янв '19 в 23:34
5 ответов

Путать с пониманием преобразования flatMap/Map

Я действительно не понимаю карты и FlatMap. Что я не понимаю, так это то, что понимание - это последовательность вложенных вызовов map и flatMap. Следующий пример взят из Функционального программирования в Scala def bothMatch(pat:String,pat2:String,…
30 янв '13 в 07:49
0 ответов

Scala для понимания - объединение будущего AbstractSeq

Имея следующий код: def getListFull: Future[org.json4s.JsonAST.JValue] = { val windowSize = 8 val result = for { response <- getResponse() if (response \ "response_code").extract[Int] == 0 maxLine <- Future{(response \ "max_line").extract[Int]…
20 янв '18 в 16:59
1 ответ

Scala для цикла доходности не обеспечивает ожидаемый результат

Следующий пример кода: val deck = for { suit <- Suit.values rank <- Rank.values } yield { println(s"$rank $suit") PlayingCard(suit, rank) } print(deck) обеспечивает следующий вывод: Эйс Хартс Два очага Три очага Четыре очага Пять очагов Шесть …
26 ноя '17 в 10:09
1 ответ

Для понимания с двумя генераторами

Я хочу отобразить произвольное количество строк в GUI-приложении в вертикальном списке. Рассмотрим следующий пример: val names = Seq[String]("Boris", "Anna", "Markus", "Simone") for(a <- 1 to names.size + 1; name <- names) yield new ListItem( …
26 июл '15 в 21:59
1 ответ

Scala для понимания с итерацией карты

Я прошел через кучу кодов и учебных пособий, и я до сих пор не понимаю, как перебрать Карту для понимания. Например: у меня есть карта. Введите как строку (имя учащегося), а значение - как данные учащегося. Я хочу повторить карту студента в качестве…
23 янв '18 в 02:28
1 ответ

Scala: условное понимание будущего

Мне нужно for понимание, которое вызывает N методов, которые возвращают Future[Int] и дать только нечетные числа. Следующий код не работает, потому что после первого четного результата блок возвращает Failure: import scala.concurrent.Future import s…
02 окт '15 в 17:27
1 ответ

Scala: модульное / интеграционное тестирование параллельной обработки для понимания

У меня есть проект Play, который использует для понимания для параллельного выполнения задач. Допустим, нам дают код ниже. Я хочу проверить, что функция firstF и secondF фактически выполняется параллельно. Что было бы лучшим способом проверить это? …
2 ответа

Замените flatMap/ цепочку карт на для понимания

Я пытаюсь использовать для понимания следующего: val s: Seq[Option[Int]] = //... val t: Option[Int] = //... s.map(sv => t.flatMap(tv => sv.map(_ == tv))) Я попробовал это: val r: Seq[Option[Boolean]] = for( sv <- s; tv <- t; svv <- sv…
27 фев '18 в 20:14
3 ответа

Не может сгладить Попытка в понимании

Это сочетание стилистического вопроса и моих попыток расширить понимание Scala. У меня есть список, содержащий Future, я хочу вычислить значения фьючерсов, преобразовать их в Option и выровнять список, используя для понимания: import scala.util.Try …
15 апр '13 в 11:23
1 ответ

Ибо я в nli: если я не во fli: f= Истина как понимание

Как преобразовать этот кусок кода в python3 для понимания? Я пытаюсь получить доступ к каждому элементу списка list1 сравнить его со списком list2, если не в нем, то флаг установлен. Пожалуйста помоги: для меня в списке 1: если я не в списке 2: flag…
25 мар '18 в 18:50
3 ответа

Использование Eithers с Scala "для" синтаксиса

Насколько я понимаю, Scala синтаксис "for" чрезвычайно похож на монадический синтаксис "do" в Haskell. В Scala синтаксис "for" часто используется для Listс и Options. Я хотел бы использовать его с Eithers, но необходимые методы отсутствуют в импорте…
02 июн '12 в 23:28
2 ответа

Как избежать вызова toVector на каждом Scala для понимания / выхода?

У меня есть несколько методов, которые работают на Vector последовательности и следующая идиома распространены при объединении данных из нескольких векторов в один с использованием a для понимания / выхода: (for (i <- 0 until y.length) yield y(i)…
04 фев '18 в 23:58
1 ответ

Проверьте, является ли число простым в O(sqrt(n)) в Scala

При проверке, если n это простое число в Scala, наиболее распространенные решения - это краткий однострочный текст, который можно увидеть почти во всех похожих вопросах по SO def isPrime1(n: Int) = (n > 1) && ((2 until n) forall (n % _ !=…
1 ответ

Для понимания Будущее и Либо

Я изо всех сил пытаюсь составить последовательность асинхронных процессов хорошим монадическим способом. Каждый шаг процесса может завершиться неудачей, поэтому он получает Future[Either[String, T]], def firstStep(input: Int): Future[Either[String, …
21 ноя '17 в 17:44
2 ответа

Когда ленивые для Скалы ленивы?

В Python я могу сделать что-то вроде этого: lazy = ((i,j) for i in range(0,10000) for j in range(0,10000)) sum((1 for i in lazy)) Это займет некоторое время, но использование памяти постоянно. Та же самая конструкция в скале: (for(i<-0 to 10000; …
09 авг '11 в 12:18
2 ответа

Scala: ExecutionContext для будущего понимания

Когда я делаю future или применять методы, такие как onSuccess а также map Я могу указать для них ExecutionContext. Например, val f = future { // code } executionContext f.map(someFunction)(executionContext) f onSuccess { // code } executionContext …
1 ответ

Реализуйте DISTINCT для понимания

В предпоследней лекции своего курса Coursera профессор Одерский предложил следующее for Понимание как последний шаг в прекрасном примере: def solutions(target: Int): Stream[Path] = for { pathSet <- pathSets path <- pathSet if path.endState con…
27 июн '14 в 14:24