Size: a a a

Scala User Group

2020 December 11

E

Elijah in Scala User Group
Oleg ℕizhnik
выгрузит
источник

Oℕ

Oleg ℕizhnik in Scala User Group
не нужно накапливать в LazyList
источник

Oℕ

Oleg ℕizhnik in Scala User Group
при попытке прочитать первый же элемент нужно вычитать весь список underlying до самого конца
источник

E

Elijah in Scala User Group
Oleg ℕizhnik
при попытке прочитать первый же элемент нужно вычитать весь список underlying до самого конца
ну вот я и спросил, случится ли это, не силен в ленивых коллекциях
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну а как это может не случиться
источник

Oℕ

Oleg ℕizhnik in Scala User Group
тебе нужно получить триллионный элемент списка, запомнив предыдущий триллион элементов так, чтобы их потом доставать
источник

Oℕ

Oleg ℕizhnik in Scala User Group
можно сделать O(1) памяти но тогда каждый элемент будет за триллион операция доставаться
источник

Oℕ

Oleg ℕizhnik in Scala User Group
аккумулировать ленивые коллекции не нужно
источник

Oℕ

Oleg ℕizhnik in Scala User Group
они придуманы для того, чтобы их постепенно вычислять, выкидывая ненужные куски, не вычисляя
источник

Oℕ

Oleg ℕizhnik in Scala User Group
поэтому сканлефт или список, построенный через рекурсивную конкатенацию при потреблении будет постепенно освобождать префикс после потребления, если случайно где-то нет переменной, которая на него ссылкается
источник

E

Elijah in Scala User Group
Oleg ℕizhnik
Вы можете воспользоваться таким же подходом для решений с O(1)  памяти, используя Stream
https://scastie.scala-lang.org/Odomontois/119xxFQQRNOtzezpP0gD1w/8
то есть вот это решение O(1) time + O(1) space?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
нет
источник

Oℕ

Oleg ℕizhnik in Scala User Group
O(1) space
источник

Oℕ

Oleg ℕizhnik in Scala User Group
по времени, конечно будет линейно, если итератор потреблять
источник

R

RAFIZ in Scala User Group
Elijah
то есть вот это решение O(1) time + O(1) space?
как можно решить задачу фильтрации чего-либо итерабельного за константное время?
источник

E

Elijah in Scala User Group
Oleg ℕizhnik
по времени, конечно будет линейно, если итератор потреблять
а, действительно, сам себе переиграл что-то
источник

AS

Artem Sokolov in Scala User Group
RAFIZ
как можно решить задачу фильтрации чего-либо итерабельного за константное время?
в общем виде никак
источник

R

RAFIZ in Scala User Group
Artem Sokolov
в общем виде никак
что значит «в общем виде»? а не в общем?
источник

AS

Artem Sokolov in Scala User Group
RAFIZ
что значит «в общем виде»? а не в общем?
ну если назвать фильтрацией взятие из готового ассоциативного массива одного элемента, например
источник

Oℕ

Oleg ℕizhnik in Scala User Group
можно не начинать спор о риторическом вопросе, пожалуйста
источник