Size: a a a

Kotlin Community

2020 April 19

QH

Quantum Harmonizer in Kotlin Community
Mi
Получается вместо цепочки сиквенсов ты хочешь делать что-то вроде
DistinctIterator(FilteringIterator(myIterator, ...), ...)?
я напишу себе экстеншены, будет ровно как с сиквенсами, только вместо .sequence() будет .iterator()
источник

BV

Boris Vanin in Kotlin Community
Я понимаю, что вместо одноразового сиквенса и правда можно использовать итератор было бы, но я так думаю, что этого не сделано просто, чтобы ещё раз не генерить пачку методов для итератора. Сиквенс более универсальный, хоть и инстанцирований больше
источник

QH

Quantum Harmonizer in Kotlin Community
Boris Vanin
Я понимаю, что вместо одноразового сиквенса и правда можно использовать итератор было бы, но я так думаю, что этого не сделано просто, чтобы ещё раз не генерить пачку методов для итератора. Сиквенс более универсальный, хоть и инстанцирований больше
Не генерить пачку для итератора, а генерить пачку для сиквенса 🤷‍♂️
источник

yy

yura yura in Kotlin Community
ребят, поч я не могу использовать openfileoutput в kotlin
источник

M

Mi in Kotlin Community
Quantum Harmonizer
Не генерить пачку для итератора, а генерить пачку для сиквенса 🤷‍♂️
Так сиквенс покрывает и многоразовое использование
источник

AL

Alexander Levin in Kotlin Community
Mi
Так сиквенс покрывает и многоразовое использование
Ну всмысле его хотелка (как я понимаю) - давайте вместо сиквенсов где по инстансу на создание и на вызов нужно будем использовать напрямую итераторы (где хватит инстанса на создание). Да, много раз не использовать, да и все функции библиотечные надо подогнать под итераторы, но идейно аллокаций меньше.
источник

AL

Alexander Levin in Kotlin Community
Т.е. вытаскивать только небольшие куски под это не очень круто (ощущается, что если что-то публичное, то должно быть условно под массовые нужды, а не единичные)

Но если прямо в стандартной либе будет вариант, что вот вам апи если вы не хотите переиспользовать ничего, но хотите байты сэкономить - тогда другое дело (хотя на деле звучит, что надо просто улучшать оптимизации на уровне компилятора для цепочек sequence/iterable)
источник

M

Mi in Kotlin Community
Alexander Levin
Ну всмысле его хотелка (как я понимаю) - давайте вместо сиквенсов где по инстансу на создание и на вызов нужно будем использовать напрямую итераторы (где хватит инстанса на создание). Да, много раз не использовать, да и все функции библиотечные надо подогнать под итераторы, но идейно аллокаций меньше.
Как я понял, он не хочет менять библиотеку и каждую функцию в ней, а предоставить доступ к этим всем итераторам публичный доступ наряду с сиквенсами, а сиквенсы уже могут инстанцировать итераторы много раз
источник

M

Mi in Kotlin Community
Чтобы наряду с FilteringSequence был FilteringIterator который и будет использоваться в Sequence, но при этом его ещё можно будет использовать и под свои нужды
источник

M

Mi in Kotlin Community
В принципе может пригодится, но не уверен что это целесообразно
источник

AL

Alexander Levin in Kotlin Community
Mi
Чтобы наряду с FilteringSequence был FilteringIterator который и будет использоваться в Sequence, но при этом его ещё можно будет использовать и под свои нужды
Ну всмысле на деле тебе надо будет у себя написать все функции вроде Iterator<T>.map(transform: (T) -> R) = TransformingIterator(this, transform) , иначе такие конструкторы использовать будет неприятно.
источник

M

Mi in Kotlin Community
Quantum Harmonizer
я напишу себе экстеншены, будет ровно как с сиквенсами, только вместо .sequence() будет .iterator()
Именно это он и собирался сделать
источник

AL

Alexander Levin in Kotlin Community
Ну я сейчас только про то, что "никому не помешает наверное" - не лучший вариант для того, чтобы выставлять вещи, которые нужны только в стандартной либе либо одному человеку. Тут либо апи на итераторах делать в стандартной либе, либо не выставлять, как мне кажется.
источник

LS

Leonid Startsev in Kotlin Community
Alexander Nozik
Да нет, когда туда добавят возможность делать несколько полей и сделают, чтобы они реально инлайнились...
Это без вальгаллы сложно адекватно сделать
источник

M

Mi in Kotlin Community
Alexander Levin
Ну я сейчас только про то, что "никому не помешает наверное" - не лучший вариант для того, чтобы выставлять вещи, которые нужны только в стандартной либе либо одному человеку. Тут либо апи на итераторах делать в стандартной либе, либо не выставлять, как мне кажется.
В этом плане я согласен
источник

AL

Alexander Levin in Kotlin Community
@Harmonizr кстати чисто технический вопрос - эту штуку вообще можно выставить наружу так, чтобы и оптимально было и за тебя апи полностью не имплементить?
Ну, вроде как ты тут оптимизируешь всё, а для этого нужно и лямбду с трансформацией/фильтрацией/whatever инлайнить.
А если инлайнить, то это скорее функция, а не конструктор.
А если функция, то и назвать стоит по аналогии с Iterable/Sequence API?
источник

AN

Alexander Nozik in Kotlin Community
Leonid Startsev
Это без вальгаллы сложно адекватно сделать
Да и с ней не просто
источник

А

Александр in Kotlin Community
Помогите найти книгу Язык программирования Kotlin - Сергей Пименов
источник

AM

Andrew Mikhaylov in Kotlin Community
Kind reminder: пиратство в группе не поощряется.
источник

AN

Alexander Nozik in Kotlin Community
Andrew Mikhaylov
Kind reminder: пиратство в группе не поощряется.
Ее и на покупку нет
источник