@kotlin_lang

Страница 48 из 982
Михаил
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)?

Kirill
17.02.2017
11:29:04
или как карировать-перекарировать андроид (без Rx)?
вот это было бы интересно. но, кажется, краткий ответ "никак"

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

Igor
17.02.2017
11:29:44
вот это было бы интересно. но, кажется, краткий ответ "никак"
Для этого есть funKTionale и там нет ничего особо интерсного

Руслан
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
Для этого есть funKTionale и там нет ничего особо интерсного
я хотел бы каррировать создания view или даже сервисов. О_о но архитектура андроида не позволит без особых извратов так делать

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
я хотел бы каррировать создания view или даже сервисов. О_о но архитектура андроида не позволит без особых извратов так делать
да, у андроида есть большая проблема с тем, что он всегда сам всё инстранцирует — с этим тяжело жить

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 единых кавычки поставить?

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
interface IBaseMvpPresenter<in V : IBaseMvpView> { fun attachView(view: V) fun detachView() }
Я бы написал out V, потому что V extends IBaseMvpView...

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
туплю, мне кажется, там не должно быть variance
возможно, да, но это тонкий вопрос — зависит от того какой смысл у дженерика

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
this реализует интерфейс из иерархии V
Но он не является V, он является какой-то реализацией того же интерфейса, что и реализует V.

Boris
17.02.2017
13:47:55
this реализует интерфейс из иерархии V
значит ли это, что он имеет тип V к которому ты его кастишь?

Slava
17.02.2017
13:50:58
тип он имеет однозначно другой

дженерик заточен исключительно на интерфейсы

Boris
17.02.2017
13:52:21
тип он имеет однозначно другой
тогда вероятно компилятор поступает мудро, что не дает скастить this к V?

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
думаю, не сложно написать такой код, который свалится из за того, что тут будет каст к неверному типу

вот, в джаве нету корутин, например

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
на уровне байт-кода можно повторить что угодно что делает котлин, потому что он байткод и делает
Нет, байт-код позволяет очень много того, что не позволят ни Java, ни Kotlin

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

как такое в джаве написать?

Igor
17.02.2017
14:00:50
холиварный вопрос, но все же. есть ли в котлине то, что нельзя написать в джаве?
Что вы тут развели. Вот https://kotlinlang.org/docs/reference/comparison-to-java.html и можно закрывать вопрос.

Boris
17.02.2017
14:00:54
Quantum Harmonizer
17.02.2017
14:02:02
но моё высказывание этому не противоречит
Вероятно, я неверно понял высказывание.

Михаил
17.02.2017
14:02:39
ща

почти то сказал

там в нестатическом блоке инициализируется final static

Страница 48 из 982