Size: a a a

Kotlin Community

2020 May 16

IO

Iaroslav Orlov in Kotlin Community
Alexander Nozik
йоу, я сделал сиквенс из трех элементов. Оно мне оказалось нужно. Всегда всем рассказывал, что оно не надо
зачем?
источник

IO

Iaroslav Orlov in Kotlin Community
если речь идет о Sequence
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
зачем?
Элементы последовательности довольно дорогие для вычисления и мне надо, чтобы был fail fast в случае, если нужный мне элемент найден быстро
источник

AN

Alexander Nozik in Kotlin Community
Грубо говоря цепочка ленивых вычислений
источник

QH

Quantum Harmonizer in Kotlin Community
Alexander Nozik
йоу, я сделал сиквенс из трех элементов. Оно мне оказалось нужно. Всегда всем рассказывал, что оно не надо
я бы сделал итератор)
источник

AN

Alexander Nozik in Kotlin Community
Quantum Harmonizer
я бы сделал итератор)
Ага. Учитывая что iterator == sequence
источник

AN

Alexander Nozik in Kotlin Community
            sequence {
               yield(properties?.get(name))
               yield(mergedStyles[name])
               yield(parent?.getProperty(name, inherit))
           }.merge()
Последний элемент вызывается рекурсивно и довольно дорог, поэтому его надо вычислять только если приспичит. Причем количество элементов переменное
источник

QH

Quantum Harmonizer in Kotlin Community
Alexander Nozik
            sequence {
               yield(properties?.get(name))
               yield(mergedStyles[name])
               yield(parent?.getProperty(name, inherit))
           }.merge()
Последний элемент вызывается рекурсивно и довольно дорог, поэтому его надо вычислять только если приспичит. Причем количество элементов переменное
merge() — ваша собственная функция?
Тогда iterator { … }.merge() :)
источник

AN

Alexander Nozik in Kotlin Community
Quantum Harmonizer
merge() — ваша собственная функция?
Тогда iterator { … }.merge() :)
Разницы между sequence и итератором нет - это одно и то же. В данном случае мне удобнее работать с секвенсом, потому что в плохом случае надо пробежать все с начала
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Nozik
Разницы между sequence и итератором нет - это одно и то же. В данном случае мне удобнее работать с секвенсом, потому что в плохом случае надо пробежать все с начала
Ну Миша против сиквенса просто 😊
источник

AN

Alexander Nozik in Kotlin Community
Bogdan Panchenko
Ну Миша против сиквенса просто 😊
я понимаю. А дон Кихот против ветряных мельниц
источник

QH

Quantum Harmonizer in Kotlin Community
добавляешь одну трансформацию — а там constrainOnce, спасиба нинада, лучше бы там был итератор
источник

BP

Bogdan Panchenko in Kotlin Community
Quantum Harmonizer
добавляешь одну трансформацию — а там constrainOnce, спасиба нинада, лучше бы там был итератор
А итератор удобно оборачивать в трансформации ?
источник

QH

Quantum Harmonizer in Kotlin Community
Bogdan Panchenko
А итератор удобно оборачивать в трансформации ?
Так именно в этом моя претензия к stdlib. Sequence — лишняя сущность, которая под капотом втихую оборачивает итераторы в трансформации.
источник

IO

Iaroslav Orlov in Kotlin Community
Quantum Harmonizer
Так именно в этом моя претензия к stdlib. Sequence — лишняя сущность, которая под капотом втихую оборачивает итераторы в трансформации.
зато синтаксис хороший
источник

BP

Bogdan Panchenko in Kotlin Community
Quantum Harmonizer
Так именно в этом моя претензия к stdlib. Sequence — лишняя сущность, которая под капотом втихую оборачивает итераторы в трансформации.
Скажем спасибо интеропу джаве.
источник

AN

Alexander Nozik in Kotlin Community
Bogdan Panchenko
Скажем спасибо интеропу джаве.
Да интероп не особо причем. Sequence позволяет multi-fire. В этом его отличие
источник

QH

Quantum Harmonizer in Kotlin Community
Iaroslav Orlov
зато синтаксис хороший
.sequence().map{}.toList() — хороший, .iterator().map{}.toList() — был бы плохой?
источник

IO

Iaroslav Orlov in Kotlin Community
Quantum Harmonizer
.sequence().map{}.toList() — хороший, .iterator().map{}.toList() — был бы плохой?
ну, возможно, они опасались замусоривать api итератора
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Nozik
Да интероп не особо причем. Sequence позволяет multi-fire. В этом его отличие
итератор мог бы это заменить, но поскольку итератор был в джаве решили не разрывать мозг
источник