Вопросы по теме '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 просмотров
schedule
12.04.2022
Проверка параметров метода в 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 просмотров
schedule
13.05.2022
Оптимизация понимания 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 просмотров
schedule
07.09.2022
Используйте 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 просмотров
schedule
03.07.2022
withFilter вместо фильтра
Всегда ли более эффективно использовать withFilter вместо filter при последующем применении таких функций, как карта, плоская карта и т. д.?
Почему поддерживаются только карта, плоская карта и foreach? (Также ожидаемые функции, такие как...
21585 просмотров
schedule
16.02.2023
Для понимания вариантов фильтрации
У меня есть набор элементов, назовем их 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 просмотров
schedule
16.03.2022
Решение 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 просмотров
schedule
18.09.2022
Для понимания двух массивов одинаковой длины
У меня есть два массива 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 просмотров
schedule
10.05.2022
Обеспечивает разрешение с помощью 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 просмотров
schedule
05.06.2023
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