Size: a a a

Scala User Group

2020 December 23

S

Simon in Scala User Group
Тут общий подход:
Есть поток элементов, которые нельзя ни хранить ни прочитать повторно. И есть несколько приемников для этих элементов.
Как скормить элементы во все приемники сразу? Брать каждый входящий элемент и скармливать так быстро как только можно. А "как только можно" определяется самым медленным приемником. Потому что если вы в 1 приемник скормили 100 элементов, а в другой - только 1, то вам нужно помнить 99 элементов, которые вы не "докормили". Естественно это можно организовать при помощи буферов, но данные всегда могут превысить доступный объем памяти.
источник

R

RAFIZ in Scala User Group
ясно
спасибо
источник

R

RAFIZ in Scala User Group
Simon
Тут общий подход:
Есть поток элементов, которые нельзя ни хранить ни прочитать повторно. И есть несколько приемников для этих элементов.
Как скормить элементы во все приемники сразу? Брать каждый входящий элемент и скармливать так быстро как только можно. А "как только можно" определяется самым медленным приемником. Потому что если вы в 1 приемник скормили 100 элементов, а в другой - только 1, то вам нужно помнить 99 элементов, которые вы не "докормили". Естественно это можно организовать при помощи буферов, но данные всегда могут превысить доступный объем памяти.
да, понятное объяснение 👍🏾спасибо

после того как второй приёмник тоже примет 99 буфер можно уже освобождать как я понял (если приемника два)
источник

S

Simon in Scala User Group
RAFIZ
да, понятное объяснение 👍🏾спасибо

после того как второй приёмник тоже примет 99 буфер можно уже освобождать как я понял (если приемника два)
Но к этому времени первый приемник примет еще 200 элментов, так что буфер будет забит всегда и общую пропускную способность он почти не улучшит.
источник

S

Simon in Scala User Group
или вам требуется бесконечный буфер
источник

S

Simon in Scala User Group
У вас не закончится обработка, пока не закончит работать самый медленный приемник, так что пытаться скормить элементы в более быстрые приемники быстрее чаще всего бессмысленно.
источник
2020 December 24

A

Aaa4 in Scala User Group
Господа, у меня вопрос немного может быть странный,
вот есть iterable
var list_prices = bufferedSource.getLines()
     .drop(1)
     .map(_.split(";")
       .map(convertString(_))
       .map(_.trim)
     ).collect({ case Array(a, b, c, d, e) => (a, b, c, d, e) })
читает файлик, оборачивает в кортежи, окей,
почему
val q = list_prices.length  //200
val q1 = list_prices.length //0

как так то?
источник

V

Vasiliy in Scala User Group
Aaa4
Господа, у меня вопрос немного может быть странный,
вот есть iterable
var list_prices = bufferedSource.getLines()
     .drop(1)
     .map(_.split(";")
       .map(convertString(_))
       .map(_.trim)
     ).collect({ case Array(a, b, c, d, e) => (a, b, c, d, e) })
читает файлик, оборачивает в кортежи, окей,
почему
val q = list_prices.length  //200
val q1 = list_prices.length //0

как так то?
def getLines(): collection.Iterator[String]

IterableOnce же
источник

A

Aaa4 in Scala User Group
Vasiliy
def getLines(): collection.Iterator[String]

IterableOnce же
ох, я не посмотрел что trait Iterator[+A]
extends IterableOnce[A]
источник

A

Aaa4 in Scala User Group
Vasiliy
def getLines(): collection.Iterator[String]

IterableOnce же
все, сори :)
источник

A

Aaa4 in Scala User Group
а в таких случаях когда мне размер нужен просто копию снять 1 и измерить?
источник

S

Saitama in Scala User Group
Aaa4
а в таких случаях когда мне размер нужен просто копию снять 1 и измерить?
Предполагается, что q1 станет не равным q?
источник

A

Aaa4 in Scala User Group
Saitama
Предполагается, что q1 станет не равным q?
хм, мне этот список дальше нужен
источник

S

Saitama in Scala User Group
Aaa4
хм, мне этот список дальше нужен
.toList
источник

A

Aaa4 in Scala User Group
Saitama
.toList
воу, спс, я думал коллект терминальная операция
источник

DR

Danila Romanov in Scala User Group
в котиках/тофе есть какой-то изи синатксис для product?
шоб (a:F[A],b:F[B]).product == F[(A,B)]
Applicative[F].product чот некрасыва
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Danila Romanov
в котиках/тофе есть какой-то изи синатксис для product?
шоб (a:F[A],b:F[B]).product == F[(A,B)]
Applicative[F].product чот некрасыва
в котах точно есть
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
там же где mapN
источник

E

Elijah in Scala User Group
Aaa4
хм, мне этот список дальше нужен
у итератора есть метод duplicate, который сделает ваш изначальный итератор неюзабельным, но зато вернёт вам тупл из двух точно таких же неиспользованных итераторов, если вам по какой-то причине нужен именно Iterator
источник

λ

λoλcat in Scala User Group
Danila Romanov
в котиках/тофе есть какой-то изи синатксис для product?
шоб (a:F[A],b:F[B]).product == F[(A,B)]
Applicative[F].product чот некрасыва
.tupled
источник