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

Декартово произведение двух списков
Дана карта, где цифра связана с несколькими символами scala> val conversion = Map("0" -> List("A", "B"), "1" -> List("C", "D")) conversion: scala.collection.immutable.Map[java.lang.String,List[java.lang.String]] = Map(0 -> List(A,...
16205 просмотров
schedule 02.03.2022

Ленивый для оценки понимания в scala
Я новичок в scala и большинстве функциональных языков, и сейчас я пытаюсь вычислить число. я написал код: lazy val factors = for(int <- 2 until math.ceil(math.sqrt(number)).toInt if number%int == 0) yield int Мне было интересно, если бы...
2206 просмотров

Проверка параметров метода в Scala, для понимания и монад
Я пытаюсь проверить параметры метода на недействительность, но не нахожу решения... Может кто-нибудь сказать мне, как это сделать? Я пытаюсь что-то вроде этого: def buildNormalCategory(user: User, parent: Category, name: String,...
8830 просмотров
schedule 15.02.2023

Scala для понимания, если фильтровать слишком много?
У меня есть следующая программа: (Scala 2.9.2, Java6) object Forcomp { def main(args: Array[String]): Unit = { val xs = List(-1, 0, 1) val xss = for (a <- xs; b <- xs if a != 0 && b != 0) yield (a,b) println(xss) } }...
197 просмотров
schedule 28.03.2023

Индексируемые структуры данных за Scala для понимания
Я только что закончил смотреть шестую неделю лекций Мартина Одерски о Scala на Coursera. В лекции 5 он говорит, что "... перевод for не ограничивается списками, последовательностями или даже коллекциями; Он основан исключительно на наличии...
310 просмотров

Оптимизация понимания Scala (карта идентичности)
Как я могу избежать map(identity) в for -пониманиях Scala? Например, рассмотрим: import scala.concurrent._ import scala.concurrent.duration._ object Test extends App { implicit val executorContext = ExecutionContext.global val future =...
395 просмотров
schedule 01.05.2022

Как определить flatMap для класса с параметрами ковариантного / контравариантного типа?
Допустим, у нас есть класс с ковариантным и контравариантным параметрами типа: sealed trait Pipe[-I,+O,+R] // case subclasses И у нас есть монадические операции, определенные для экземпляров этого класса: object Pipe { def...
272 просмотров

Используйте 4 (или N) коллекций, чтобы получать только одно значение за раз (1xN) (т. Е. Заархивировано для tuple4 +)
scala> val a = List(1,2) a: List[Int] = List(1, 2) scala> val b = List(3,4) b: List[Int] = List(3, 4) scala> val c = List(5,6) c: List[Int] = List(5, 6) scala> val d = List(7,8) d: List[Int] = List(7, 8) scala>...
843 просмотров

withFilter вместо фильтра
Всегда ли более эффективно использовать withFilter вместо filter при последующем применении таких функций, как карта, плоская карта и т. д.? Почему поддерживаются только карта, плоская карта и foreach? (Также ожидаемые функции, такие как...
21585 просмотров

Для понимания вариантов фильтрации
У меня есть набор элементов, назовем их Effect , и у меня есть список Cause , в которых есть набор possibleEffects : Set[Effect] . Мне нужно перебрать список эффектов и вернуть только первые Cause , которые я нахожу для каждого Effect . Могут...
539 просмотров
schedule 20.06.2022

Как преобразовать эту карту/flatMap в для понимания в Clojure?
Учитывая этот код Scala : def compute2(maybeFoo: Option[Foo]): Option[Int] = maybeFoo.flatMap { foo => foo.bar.flatMap { bar => bar.baz.map { baz => baz.compute } } } Который затем переводится на...
265 просмотров

Решение Scala для nQueen с использованием for-comprehension
У меня есть некоторые трудности с пониманием решения n Queens на Scala, ниже приведена реализация, предполагающая isSafe определяется правильно def queens(n: Int): Set[List[Int]] = { def placeQueens(k: Int): Set[List[Int]] = k match {...
582 просмотров
schedule 16.01.2023

Есть ли для понимания что-то вроде flatYield?
У меня есть код вроде //all data have different types val data1Future = loadData1(params) val data2Future = loadData2(params) val data3Future = loadData3(params) def saveResult(rez): Future[_] = ??? data1Future.flatMap { data1 =>...
96 просмотров
schedule 26.07.2023

Динамически создавать для понимания фьючерсов и ждать завершения
У меня есть следующий код: // Start async functions val async1: Future[Seq[Int]] = ... val async2: Future[Seq[Int]] = ... val async3: Future[Seq[Int]] = ... // Wait for completion (for { a1 <- async1 a2 <- async2 a3 <-...
543 просмотров
schedule 25.11.2022

Scala для понимания с будущим и вариантами
object Main extends App { val p1 = Promise[Option[String]]() val p2 = Promise[Option[String]]() val f1 = p1.future val f2 = p2.future val res = (for{ file1Opt <- f1 file2Opt <- f2 file1 <- file1Opt file2 <-...
6021 просмотров

Для понимания двух массивов одинаковой длины
У меня есть два массива Seq[Array[Byte]] : var o1: Seq[Array[Byte]] var o2: Seq[Array[Byte]] //... Мне нужно изменить последовательность o1 массивов, чтобы каждый массив o1 был заменен массивом o2 той же позиции iff массив...
100 просмотров
schedule 28.10.2022

Как избежать вызова toVector на каждом Scala для понимания/выдачи?
У меня есть несколько методов, которые работают с последовательностями Vector , и следующая идиома распространена при объединении данных из нескольких векторов в один с использованием для понимания / выхода: (for (i <- 0 until y.length) yield...
146 просмотров
schedule 17.06.2023

Scala: понимание с охраной внутри читателя
Вот пример кода: type FailFast[A] = Either[List[String], A] import cats.instances.either._ def f1:ReaderT[FailFast, Map[String,String], Boolean] = ReaderT(_ => Right(true)) def f2:ReaderT[FailFast, Map[String,String], Boolean] =...
187 просмотров

Обеспечивает разрешение с помощью Scala-cats
Пример взят из Финал без тегов по освоению функционального программирования : trait Capabilities[F[_]] { def resource(name: String): F[String] def notify(target: String, text: String): F[Unit] } import cats.Monad def income[F[_]](implicit...
303 просмотров

EitherT в Scala не работает с For Computing
У меня есть такой код: (for { oldResult <- EitherT[Future, A, B](getById(id)) newResult <- EitherT.right(update(changeOldData(oldResult))) } yield newResult).value Где функции возвращаются getById ->...
111 просмотров
schedule 27.11.2023