Даниил
16.02.2018
17:32:44
Quantum Harmonizer
16.02.2018
17:33:36
Nikita
16.02.2018
17:34:36
опечатка, там от двух вызывается
Google
Quantum Harmonizer
16.02.2018
17:37:25
Nikita
16.02.2018
17:38:21
а если вынести все кроме do в Java, тут в этом еще загвоздка
Даниил
16.02.2018
17:38:29
вопрос в гибкости
интерфейсы намного меньше гибкости дают чем тайпклассы
проблемы интерфейсов:
1) нельзя добавить реализацию к существующему классу
2) нельзя типизировать статические функции
обе проблемы решаются если интерфейсы будут описывать не инстансы класса, а реализацию определённого поведения как отдельную сущность, это в принципе можно делать и сейчас но из-за отсутствия поддержки языком приводит к другим ограничениям
Quantum Harmonizer
16.02.2018
17:39:22
Nikita
16.02.2018
17:40:02
логично, что должно работать, ладно, буду у себя искать что не так, спасибо
Quantum Harmonizer
16.02.2018
17:40:38
Nikita
16.02.2018
17:42:37
все, тоже заработало, проблема в одинаковых именах интерфейсов, и не правильно автоимпорт проставил зависимость
спасибо за помощь!
Mikhail
16.02.2018
17:46:12
Или нет
Kirill
16.02.2018
18:12:00
Не получится
Там ambiguity будет
Mikhail
16.02.2018
18:12:21
А, точняк, родные методы приоритетнее екстеншнов
Google
Mikhail
16.02.2018
18:12:29
Эх
Grigory
16.02.2018
18:33:44
Kirill
16.02.2018
18:33:58
Mikhail
16.02.2018
18:35:43
Нууу, мне сложно каждый раз заново велосипедить по мелочи. RxJava почти такая же по сложности концепция - и ничего, захватила android разработку полностью
Igor
16.02.2018
18:36:14
Vitalii
16.02.2018
18:36:55
Mikhail
16.02.2018
18:37:41
Руслан
16.02.2018
18:43:03
Mikhail
16.02.2018
18:43:29
Я слышал от Елизарова
Руслан
16.02.2018
18:43:33
https://github.com/arrow-kt/kotlin
Я слышал от Елизарова
Да не в этом дело, они просто форкнули котлин чтобы сделать POC для того самого KEEP.
Mikhail
16.02.2018
18:44:46
Ну одно дело сделать POC, другое - прикрутить плагин к компилятору
Руслан
16.02.2018
18:44:59
Так а кто про плагин говорил?
Mikhail
16.02.2018
18:45:23
А, невнимательно прочел)
Ну, отдельный замороженный во времени форк компилятора ради тайпклассов - такое себе)
Руслан
16.02.2018
18:45:49
Но судя по форку пока в самом JB не захотят, ничего не будет. Потому что в форке один коммит и очень давно.
Mikhail
16.02.2018
18:46:14
Не, там вроде движ в слэке и гиттере есть
Но я особо не вникал, времени маловато форкать котлин?
Andrew
16.02.2018
18:46:44
Обсуждать -- не мешки ворочать :D
Google
Mikhail
16.02.2018
18:46:57
Ну тык)
Кстати, есть здесь кто по корутинам для dsl может помочь?
Руслан
16.02.2018
18:48:01
Проще сразу задать вопрос, чем ждать пока кто-то признается
Mikhail
16.02.2018
18:48:30
Я просто набросил, пока gist готовлю
Kirill
16.02.2018
19:13:24
Mikhail
16.02.2018
19:18:44
Проще сразу задать вопрос, чем ждать пока кто-то признается
Короче, пытался я сделать с помощью Applicative builder такую штуку, чтобы можно было простым dsl делать функцию-конструктор, которая бы возвращала валидный обьект, если все необходимые параметры переданы, либо null, если чего-то не хватает, оно вроде с помощью chain call легко вышло (я даже нашел похожий проект на гитхабе под названием Forge, это json парсер с апи в таком стиле), но захотел не этого олдскульного fluentapi, а крутого классного dsl, чтобы красиво было, но чего-то не выходит у меня круто и красиво
https://gist.github.com/Mishkun/313d00ed21a28c1b590008f8eebd1892
если нужен полный компилящийся код - могу и его закинуть, но там много постороннего
Andrew
16.02.2018
19:27:48
Кто там хотел Arrow поосваивать? До 21-го числа курсец бесплатный есть: https://caster.io/courses/functional-programming-in-kotlin-with-arrow
Mikhail
16.02.2018
19:29:58
Andrew
16.02.2018
19:30:40
Странно, у меня первое видео открылось.
Mikhail
16.02.2018
19:31:10
все, норм, чет Ябраузер подводит
picty
16.02.2018
19:32:57
Подскажите пожалуйста - не нужно ли в Kotlin unbind'ить вьюхи - как в ButterKnife например?
Mikhail
16.02.2018
19:33:45
picty
16.02.2018
19:35:12
Andrew
16.02.2018
19:39:04
https://chrome.google.com/webstore/detail/octotree/bkhaagjahfmjljalopjnoealnfndnagc?hl=en-US
откуда б я ещё узнал о таком замечательном расширении, если б не из курса по функциональщине в котлине.
Artem
16.02.2018
19:40:28
Ребят, а в каком пакете находится suspendCoroutineOrReturn?
Руслан
16.02.2018
19:40:41
Короче, пытался я сделать с помощью Applicative builder такую штуку, чтобы можно было простым dsl делать функцию-конструктор, которая бы возвращала валидный обьект, если все необходимые параметры переданы, либо null, если чего-то не хватает, оно вроде с помощью chain call легко вышло (я даже нашел похожий проект на гитхабе под названием Forge, это json парсер с апи в таком стиле), но захотел не этого олдскульного fluentapi, а крутого классного dsl, чтобы красиво было, но чего-то не выходит у меня круто и красиво
https://gist.github.com/Mishkun/313d00ed21a28c1b590008f8eebd1892
Ну если ты типо берешь KFunction и пытаешься сделать ей карирование то я слабо представляю как это сделать не в билдер стайл
Mikhail
16.02.2018
19:42:27
Artem
16.02.2018
19:43:20
Mikhail
16.02.2018
19:44:02
в том то и дело, что я хз как оно импортится
Google
Mikhail
16.02.2018
19:44:19
я воспользовался импортом на копировании из InteliJ
и скопировал внутренности SequenceBuilder
и оно добавило этот пакет
Igor
16.02.2018
19:44:38
Artem
16.02.2018
19:45:20
Эт как? Можно чуть подробнее пожалуйста?) Просто копировали путь и прописали в import?
Mikhail
16.02.2018
19:45:31
агась
Artem
16.02.2018
19:45:54
Просто прописал вручную импорт и всё хорошо :D
Вопрос закрыт, спасибо)
Руслан
16.02.2018
19:46:55
Я кстати такое-же примерно писал for fun недавно, https://gist.github.com/IRus/68f2e811592b9dd3b18dabe68116c964
Сейчас придумал как из этого сделать DI который при этом будет хорошо работать с Java 9 модулями.
Mikhail
16.02.2018
19:54:35
Короче, вопрос пока снят, сходил в слак arrow, меня там ткнули в реализацию Applicative Builder у них, завтра буду курить
Quantum Harmonizer
16.02.2018
20:52:03
@android_ru, @kotlin_mobile. В любом случае, надо код.
Mikhail
16.02.2018
20:56:41
Тут точно надо код
Andrew
16.02.2018
21:38:28
Ключевое там было вот это:
"@android_ru, @kotlin_mobile."
Quantum Harmonizer
16.02.2018
21:39:58
А где десяток RelativeLayout, о которых говорилось вначале?
Ну, надо проверить, разные ли у них ID.
Igor
17.02.2018
08:01:43
А как идиоматично “сложить” элемент с (readonly)списком?
T + List<T>
Что бы получился список с новым хедером. Оператор “plus” работает только при сложение справа же.
Как вариант конечно можно listOf(x) + xs
Mikhail
17.02.2018
08:14:14
А вот так получится? operator fun <T> T.plus(list: List<T>) = listOf(this) + list
Но вообще надо просто ждать пока нормальные неизменяемые коллекции завезут
Boris
17.02.2018
08:20:59
Google
Boris
17.02.2018
08:22:10
Mikhail
17.02.2018
08:29:10
И как это поможет?
Тогда не надо будет оборачивать новую баушку в синглтон и копировать хвост
Igor
17.02.2018
08:35:53
Boris
17.02.2018
08:39:57
Mikhail
17.02.2018
08:42:27
Igor
17.02.2018
09:42:48
а как можно покрасивее написать следующий код (первый map из rx, остальное – котлиновские функции)
map { platforms -> platforms.filterNot { fetched -> existing.any { (id) -> id == fetched.id } } }