поле flag: Boolean)
также есть функция f: A => Future[B]
нужно отфильтровать Seq[A] так, чтоб остались те А, для которых после применения к ним f флаг flag == false
как бы мне это сделать поэлегантнее?
вряд ли в ванильной скале есть что-то принципиально лучше https://scastie.scala-lang.org/vAJ8oBGtSSyDAeaoaMxeBw
спасибо. щас гляну
спасибо
У Никиты решение лучше (я не умею в traverse :()
так это не то, там A нужны на выходе (я тоже так сначала хотел)
а если функция у нас такая f: A => Future[Option[A]] то можно отфильтровать как-то ещё короче? (меньшим кол-вом операций)
Future.traverse(seq)(f).map(_.flatten) думаю так
а какой вариант лучше? если учитывать, что вторую функцию мы получили путём Option(a).filter(!b.flag)
Я бы выбрал самый первый, так имхо проще всего понять, что происходит
https://github.com/typelevel/cats/blob/9ea10ce95b414f57bccd966b2fe0ab4cacaa7af0/core/src/main/scala/cats/TraverseFilter.scala#L40
то что нужно, ток котов завозить если спасибо
хотя не, та же проблема: на выход нужен список из исходных элементов. отфильтрованный
То есть нужно Future[A] => A?
в примере функция Int => Future[Option[String]], сделай Int => Future[Option[Int]]
ну ну; вот я в эту сторону уже и начал думать ,спасибо
Обсуждают сегодня