
Михаил
17.02.2017
10:46:18
Вот радует, что над языком плотно работают

Igor
17.02.2017
11:11:00
Какую статью по "функциональному Котлину" стоит сделать для (инвайта) хабра?
Как варианты:
- Обзор библиотеки funKTionale
- "Реализации Монад и функторов в Android с помощью Kotlin и без практического применения ?"

Boris
17.02.2017
11:12:06
лучше с применением

Руслан
17.02.2017
11:12:07
обзор мне кажется не потянет на инвайт (хотя кто знает)
а про монады норм (только зачем андроид?)

Google

Kirill
17.02.2017
11:13:41
» "Реализации Монад и функторов в Android с помощью Kotlin и без практического применения
https://github.com/h0tk3y/kotlin-monads
(не андроид правда, да)

Igor
17.02.2017
11:13:51
лучше с применением
А если так Практическое применение ФП (без RX) при разработки мобильных приложений на Kotlin?

Aliaksei
17.02.2017
11:27:36
Я тут недавно на прикольный перевод наткнулся про функторы и монады https://habrahabr.ru/post/183150/

Kirill
17.02.2017
11:27:53

Aliaksei
17.02.2017
11:28:36
или как карировать-перекарировать андроид (без Rx)?

Boris
17.02.2017
11:29:03

Kirill
17.02.2017
11:29:04

Aliaksei
17.02.2017
11:29:33
(без Rx) конечно никак

Igor
17.02.2017
11:29:44

Руслан
17.02.2017
11:29:47
как это никак, funKtionale же поможет

Aliaksei
17.02.2017
11:30:06
Хорошая либа

Boris
17.02.2017
11:30:18
(без Rx) конечно никак
вообще это даже руками сделать не большая проблема, я уж не говорю про использование готовых библиотек

Google

Aliaksei
17.02.2017
11:30:26
да я шучу ж, сорян

Kirill
17.02.2017
11:30:46

Boris
17.02.2017
11:31:08

Slava
17.02.2017
11:31:47
/stat@combot

Combot
17.02.2017
11:31:48
combot.org/chat/-1001032833563

Igor
17.02.2017
11:31:52
Вообще не люблю RX тк это ну просто мейнтримный-мейнстрим.
На каждой Android конфе обязательно есть о нем доклады - кто хотел уже все выучил.

Boris
17.02.2017
11:31:59

Igor
17.02.2017
11:34:03
Хочется поговорить о реальном ФП с чистыми функциями и алг. типами, а не OOП + Стримы (или Рективные-Стримы)

Quantum Harmonizer
17.02.2017
11:34:10

Slava
17.02.2017
11:57:26
ребят, может кто подскажет почему он недоумевает?
все работает, просто не пойму почему студия варнинг вешает

Boris
17.02.2017
11:58:29
потому что он не знает this типа V или нет

Slava
17.02.2017
11:59:37
так а почему он этого не знает, this же реализует интерфейс, из иерархии для V

Boris
17.02.2017
12:00:38
нет, он реализует IBaseMvpView, а реализует ли он V компилятор не знает
а, там in
тогда нужно подумать

Slava
17.02.2017
12:02:12
просто интересно, пытаюсь это понять
что бы лучше понимать дженерики и как он проверяет на этапе компиляции

Quantum Harmonizer
17.02.2017
12:03:55

Google

Slava
17.02.2017
12:04:25
[оффтоп] для вставки кода надо 3 единых кавычки поставить?

Boris
17.02.2017
12:04:50

Slava
17.02.2017
12:05:11
interface IBaseMvpPresenter<in V : IBaseMvpView> {
fun attachView(view: V)
fun detachView()
}

Sergey
17.02.2017
12:06:07
[оффтоп] какой-то generic-hell :D

Boris
17.02.2017
12:06:24
ну да, всё вроде верно, this к V преобразовать нельзя

Quantum Harmonizer
17.02.2017
12:08:11

Slava
17.02.2017
12:08:46
или ты за другое место

Boris
17.02.2017
12:09:27
ну да, они специально называются in и out чтобы понимать, что если in значит ты его передаешь в качестве параметра, а если out то возвращаешь
т.е. нельзя объявить тип как in и возвращать его или out и передавать его в параметр

Quantum Harmonizer
17.02.2017
12:10:44
туплю, мне кажется, там не должно быть variance

Boris
17.02.2017
12:11:20

Slava
17.02.2017
12:14:58
я потом от этого класса наследуюсь и наследую интерфейсы
View
и
Presenter
, передаю этих наследников в него
если вам будет интересно и будет время, то могу отрисовать uml
а то так мы на кофейной гуще гадаем
я мало инфы, наверно, даю

Boris
17.02.2017
12:28:03
да не, я тут поковырял, без тайпкаста вроде сделать не выйдет
как вообще ты сам можешь быть уверен, что this это V?

Slava
17.02.2017
13:26:20
this реализует интерфейс из иерархии V
как вообще ты сам можешь быть уверен, что this это V?

Google

Igor
17.02.2017
13:43:01
Как вы обходитиесь с тем что CompletableFuture.thenAccept() возвращает CF<Void>, а не CF<Unit>?
(странно что в Kotlin для Java8 нет готового экстеншен-метода)

Quantum Harmonizer
17.02.2017
13:45:25

Boris
17.02.2017
13:47:55

Slava
17.02.2017
13:50:58
тип он имеет однозначно другой
дженерик заточен исключительно на интерфейсы

Boris
17.02.2017
13:52:21

Slava
17.02.2017
13:53:07
может быть
в рантайме все работает норм

Михаил
17.02.2017
13:53:42
холиварный вопрос, но все же. есть ли в котлине то, что нельзя написать в джаве?
кроме вещей связанных с inline

Boris
17.02.2017
13:54:01

Slava
17.02.2017
13:55:26
если и есть, то оно вам никогда не пригодится. На выходе байт код jvm, какая разница на чем оно написано?
холиварный вопрос, но все же. есть ли в котлине то, что нельзя написать в джаве?

Boris
17.02.2017
13:55:49
думаю, не сложно написать такой код, который свалится из за того, что тут будет каст к неверному типу
вот, в джаве нету корутин, например

Quantum Harmonizer
17.02.2017
13:57:05

Boris
17.02.2017
13:57:14
их так вот просто взять и "написать" нельзя, хотя это не мешает делать их библиотекам

Михаил
17.02.2017
13:57:15
конструцкции, которые на уровне байт кода нельзя повторить в джаве

Slava
17.02.2017
13:57:38
а такие есть?

Google

Михаил
17.02.2017
13:58:12
ну допустим refeid дженерики
хотя если руками инлайнить методы...

Boris
17.02.2017
13:59:02

Михаил
17.02.2017
13:59:28
ну вроде как обжекты котлиновские не повторить

Boris
17.02.2017
13:59:29
reified дженерики не на уровне байт-кода
это же просто синглтон

Quantum Harmonizer
17.02.2017
14:00:24

Михаил
17.02.2017
14:00:26
там на уровне байткода идет инициализация final переменной в нестатическом блоке
как такое в джаве написать?

Igor
17.02.2017
14:00:50

Boris
17.02.2017
14:00:54

Quantum Harmonizer
17.02.2017
14:02:02

Михаил
17.02.2017
14:02:39
ща
почти то сказал
там в нестатическом блоке инициализируется final static

Quantum Harmonizer
17.02.2017
14:05:13