Size: a a a

Kotlin Community

2020 August 04

AH

Ayrat Hudaygulov in Kotlin Community
Bogdan Panchenko
в F# как сделано ?
там можно по желанию определить поиск в обоих типах

let iniline (+) a b =
 (^a or ^b: (static member someAddition ^a -> ^b -> ^c) a b)

и вот такая балалайка сможет складывать любые типы в котором определена статическая функция someAddition (в любом, да)
источник

AH

Ayrat Hudaygulov in Kotlin Community
Кирилл Романенко
listOf(request.item) + request.variantItems
ну, тут ещё и пересоздание списка. Возможно в житом вырежется, но это такое. Ну ладно, некритично
источник

AO

Alexey Otts in Kotlin Community
Ayrat Hudaygulov
ну, тут ещё и пересоздание списка. Возможно в житом вырежется, но это такое. Ну ладно, некритично
Не вырежется
источник

AO

Alexey Otts in Kotlin Community
Но это спички совсем
источник

AH

Ayrat Hudaygulov in Kotlin Community
Alexey Otts
Но это спички совсем
да, эт фигня
источник

BP

Bogdan Panchenko in Kotlin Community
Ayrat Hudaygulov
там можно по желанию определить поиск в обоих типах

let iniline (+) a b =
 (^a or ^b: (static member someAddition ^a -> ^b -> ^c) a b)

и вот такая балалайка сможет складывать любые типы в котором определена статическая функция someAddition (в любом, да)
прикольно, в котлине нужно делать два оператора для каждого типа (если они отличаются)
источник

AM

Andrew Mikhaylov in Kotlin Community
Ayrat Hudaygulov
Есть ли способ получить иммутабельный лист без создания мутабельного?
mutableListOf<Item>().apply {
   add(request.item)
   addAll(request.variantItems)
}.toList()
Я позанудствую: тут нет иммутабельных списков всё же. А раз их нет, непонятно, какая цель в избегании мутабельных списков при создании read-only.
источник

BP

Bogdan Panchenko in Kotlin Community
Alexey Otts
Разве в котлине есть понятие правоассоциативных определений?
нет, есть только приоритет, так котлин полностью левоассоциативный
источник

AH

Ayrat Hudaygulov in Kotlin Community
Andrew Mikhaylov
Я позанудствую: тут нет иммутабельных списков всё же. А раз их нет, непонятно, какая цель в избегании мутабельных списков при создании read-only.
ну хотелось какой-нибудь ленивый итератор вообще))
источник

AN

Alexander Nozik in Kotlin Community
Ayrat Hudaygulov
ну хотелось какой-нибудь ленивый итератор вообще))
Что такое ленивый итератор и при чем тут все это? Хотите итератор, создавайте через sequence
источник

BP

Bogdan Panchenko in Kotlin Community
Ayrat Hudaygulov
ну хотелось какой-нибудь ленивый итератор вообще))
источник

BP

Bogdan Panchenko in Kotlin Community
есть билдеры, как для сиквенса так и для Iterable
источник

AN

Alexander Nozik in Kotlin Community
Но они будут не дешевле, чем buildList
источник

AO

Alexey Otts in Kotlin Community
Билдеры на саспенд это конечно лютый оверхед
источник

AH

Ayrat Hudaygulov in Kotlin Community
воу, сиквенсы - это саспенд функции O.o
источник

BP

Bogdan Panchenko in Kotlin Community
Ayrat Hudaygulov
Есть ли способ получить иммутабельный лист без создания мутабельного?
mutableListOf<Item>().apply {
   add(request.item)
   addAll(request.variantItems)
}.toList()
val seq =  sequence {
   yield(request.item)
   yieldAll(request.variantItems)
}
val list = seq.toList()
источник

AN

Alexander Nozik in Kotlin Community
Ayrat Hudaygulov
воу, сиквенсы - это саспенд функции O.o
ограничено.
источник

BP

Bogdan Panchenko in Kotlin Community
Ayrat Hudaygulov
воу, сиквенсы - это саспенд функции O.o
да но там есть ограничения
источник

AH

Ayrat Hudaygulov in Kotlin Community
Bogdan Panchenko
val seq =  sequence {
   yield(request.item)
   yieldAll(request.variantItems)
}
val list = seq.toList()
yield - abstract suspend fun yield(value: T)
источник

AN

Alexander Nozik in Kotlin Community
Alexey Otts
Билдеры на саспенд это конечно лютый оверхед
Не особо на самом деле. Код там получается весьма органичный, Но на buildList, разумеется лучше
источник