Вопросы по теме 'for-comprehension'

Связывание одного значения в пределах для понимания
В руководстве Learn You a Haskell есть пример использование let связывателя в понимании списка : calcBmis xs = [bmi | (w, h) <- xs, let bmi = w / h ^ 2, bmi >= 25.0] Функция принимает список пар рост / вес и возвращает список...
696 просмотров
schedule 15.10.2021

Не могу сгладить Попытку понять
Это сочетание стилистического вопроса и моих попыток расширить мое понимание Scala. У меня есть список, содержащий Future, я хочу вычислить значения Futures, преобразовать их в Option и сгладить список, используя для понимания: import...
1419 просмотров

Для понимания с помощью поиска по карте - есть ли лучший способ?
Рассмотрим следующие val myMap: Map[String, List[Int]] = Map("a" -> List(1,2,3), "b" -> List(4,5,6), "d" -> List(7)) val possibleKeys: List[String] =...
257 просмотров
schedule 29.11.2021

Scala для понимания и промежуточных результатов flatMap / map
С первого раза прочитал это: for { harpo<-list1 if harpo.length>0 groucho<-list2 chico<-list3 } yield (harpo, groucho, chico) переводится на: list1.filter(_.length>0).flatMap(harpo =>...
428 просмотров
schedule 02.11.2021

Как дождаться результата Scala Futures в понимании
У меня проблема с приведенным ниже фрагментом кода. Я хочу, чтобы метод «комбинирования» запускался после завершения всех методов «молотый кофе», «нагреватель воды, вспененное молоко». Они будут запускаться одновременно. Все 4 метода измельчения,...
2334 просмотров
schedule 20.10.2021

Несоответствие типа для понимания: получение продукта с помощью Serializable
Я пишу функцию, которая будет принимать список вхождений символов ( List[(Char, Int)] ) в строку и создавать все подмножества этого списка вхождений. Итак, учитывая List(('a', 2), ('b', 2)) Это произведет List( List(), List(('a',...
1805 просмотров
schedule 13.11.2021

Scala для эффективности понимания?
В книге «Программирование на Scala», глава 23, автор приводит такой пример: case class Book(title: String, authors: String*) val books: List[Book] = // list of books, omitted here // find all authors who have published at least two books for (b1...
2595 просмотров
schedule 24.02.2022

Почему цикл for с yield накапливается в карте, а не в списке?
У меня есть следующий код: val dummy = Map(1 -> Map(2 -> 3.0, 4 -> 5.0), 6 -> Map(7 -> 8.0)) val thisIsList = for (x <- dummy; y <- x._2.keys) yield s"(${x._1}, ${y})"...
111 просмотров

Scala для понимания - yield со сложным фильтром
Я пытаюсь создать на Scala для понимания, но сталкиваюсь с некоторыми проблемами, когда пытаюсь использовать более сложный фильтр. Я знаю основы фильтрации понимания: for (x <- 1 until 20 if x>3) yield { x } Однако я хочу создать...
2394 просмотров
schedule 19.05.2022

Scala Future — для понимания, совмещения синхронизации и асинхронности
В моем методе1 мне нужно асинхронно вызвать другой метод2, который возвращает Option (результат1). Затем, если результат1 пуст, мне нужно асинхронно вызвать другой метод3, но если результат1 НЕ пуст, мне просто нужно вернуть его. Вот метод:...
676 просмотров
schedule 14.06.2022

Реализовать DISTINCT для понимания
В предпоследней лекции своего курса Coursera профессор Одерски предложил следующее for понимание в качестве последнего шага в прекрасном случае. изучать: def solutions(target: Int): Stream[Path] = for { pathSet <- pathSets path...
1309 просмотров
schedule 02.07.2022

Существуют ли переменные в понимании последовательности Clojure?
Я читаю Programming Clojure 2nd edition, и на странице 49 он описывает конструкцию цикла for Clojure, которая, по его словам, на самом деле является пониманием последовательности. Авторы предлагают следующий код: (defn indexed [coll]...
220 просмотров

Для понимания скала
Я склоняюсь к scala, и теперь я хочу понять, как использовать for-compressions для композиции функций. Вот функция, которую я должен реализовать без изменения ее подписи. И я почти закончил, но я не знаю, как справиться с None в этом. Не могли бы...
54 просмотров
schedule 23.07.2022

Scala For-Comprehension: как восстановить и продолжить, если будущее не удастся
Учитывая следующие List целых чисел... val l = List(1, 2, 3) ... Мне нужно вызвать 2 метода, которые возвращают Future для каждого элемента и получают следующий результат: Future(Some(1), Some(2), Some(3)) Вот моя попытка:...
4212 просмотров
schedule 03.08.2022

Scala для понимания, как избежать создания Future при передаче результатов
Я использую асинхронные функции Playframework и Slick, но не знаю, как работать с результатами из метода возврата Future в одном для понимания. Сейчас делаю так: def getWordDefinitions(checkedWordsIds: List[CheckedWord]) :...
109 просмотров
schedule 02.09.2022

вернуть будущее из onComplete scala
Упражнение forComprehension не компилируется, так как возвращает Unit вместо Future[User] (задача прочитать с помощью DAO и создать нового пользователя с помощью 2-х родителей) Я пытаюсь вернуть Future[User] из onComplete, но терпит неудачу...
37 просмотров
schedule 27.09.2022

Как это для понимания строит состояние при назначении подчеркивания?
Фон Значение forExpression (ниже) возвращает монаду StateT , которая принимает в качестве параметра начальное состояние, добавляет к состоянию 2, а затем 3, а затем умножает это значение на 10. Вопрос Почему функции add(2) и add(3)...
245 просмотров

Вариант составления со списком в for-понимание дает несоответствие типов в зависимости от порядка
Почему эта конструкция вызывает ошибку несоответствия типов в Scala? for (first <- Some(1); second <- List(1,2,3)) yield (first,second) <console>:6: error: type mismatch; found : List[(Int, Int)] required: Option[?] for...
21509 просмотров

Синтаксис Scala для понимания
В следующем коде внутри понимания for я могу обратиться к строке и индексу, используя разыменование кортежа: val strings = List("a", "b", "c") for (stringWithIndex <- strings.zipWithIndex) { // Do something with stringWithIndex._1 (string)...
3124 просмотров
schedule 16.03.2023

Преобразование последовательности операций карты в понимание
В разделе 23.5 «Программирование на Scala» я читал, что операции map, flatMap и filter всегда можно преобразовать в for-complation и наоборот. Нам дана следующая эквивалентность: def map[A, B](xs: List[A], f: A => B): List[B] = for (x...
800 просмотров