
Oleksandr
01.04.2018
14:17:30
перефразирую, почему "идиоматичным" считается именно пачка ?, а не более глобальное решение?

Kirill
01.04.2018
14:20:20

Oleksandr
01.04.2018
14:21:36

Google

Oleksandr
01.04.2018
14:22:03
(кроме корутин, понятно)

Kirill
01.04.2018
14:24:31

Oleksandr
01.04.2018
14:25:16

Kirill
01.04.2018
14:25:39

Oleksandr
01.04.2018
14:26:10
казалось мне, это не должно зависеть от пишучего код

Kirill
01.04.2018
14:26:40

Oleksandr
01.04.2018
14:27:19

Kirill
01.04.2018
14:27:59
я бы сказал так: код, который использует стороннюю либу(не kotlinx.*) не может считаться идеоматичным.

Igor
01.04.2018
14:31:17


Oleksandr
01.04.2018
14:34:37
по моему глубокому убеждению, ЯП должны дизайниться с минимумом "аксиом", и остальные возможности должны выводиться из них
в котлине решили, что ? стоит включить в этот стартовый пакет, это отдельный спор, но допустим
но тут я читаю, что один из дизайнеров и разработчиков языка утверждает, что они ввели механизм выражения абстракций через "корутины" (в кавычках для подчеркивания именно возможности абстракции над обычными корутинами), и что идиоматичнее для чейнинга функций таки юзать ?
значит ли это что-то из:
1) я кого-то не так понял
2) котлин перепишет core через "корутины"
3) вышеупомянутый разраб котлина преувеличивает полезность и юзабельность этого "общего механизма корутин"
?


Михаил
01.04.2018
15:27:52
что известно по корутинам в 1.3? какие breaking changes будут?

Google

Руслан
01.04.2018
15:29:01

Igor
01.04.2018
15:31:28
Кстати, а вы в курсе такой интересной штуки
JS (Chrome/Safari …)
40.01 + 80.0 = 120.00999999999999
Java / Kotlin
40.01f + 80.0f = 120.009995
40.01 + 80.0 = 120.00999999999999
C# / F#
40.01f + 80.0f = 120.01
40.01 + 80.0 = 120.01

Павел
01.04.2018
15:31:38
Ты всё-тки пришёл в телеграм О_о
Ща, у мну ответ по сути созреет

Pavel ?
01.04.2018
15:39:16
фамилию поправь)) Леша

Павел
01.04.2018
15:39:56

Жабра
01.04.2018
16:22:52

Oleksandr
01.04.2018
16:24:28

Жабра
01.04.2018
16:25:27

Oleksandr
01.04.2018
16:27:13
Но вообще прагмитизм говорит, что если что-то программистам нужно постоянно, то оно должно быть максимально поддержано в языке и в инструментах. Да, я могу реализовать с библиотеке свой Option<T> поверх "do-нотации", но если он _родной_ в языке то им будет пользоваться удобней. Обратно то же верно. Не нужно добавлять в язык фичи, если и без них можно сделать библиотечку чтобы получить ни чем не худший experinece (это одна из причин по которой в Котлин корутинах не прибиты гвоздями async/await, а сделан более общий механизм - async/await неплохо работает как библиотечные функции)

Quantum Harmonizer
01.04.2018
16:27:34


Oleksandr
01.04.2018
16:29:28
и вот ещё
Ключевая разница в том, что императивные языки "из коробки" поддерживают фиксированный набор монад над которыми работает их "do нотация". Обычно это IO и Try монады. Такой выбор определяется прагматикой (это то, что программистам нужно чаще всего). В функциональных языках общий синтаксис для любой монады. Однако, известно что "continuation is the mother of all mondas", так что с поддержкой корутин в котлине любители побаловаться экзотическими монадами могу легко сделать для них do-нотацию поверх корутин (в Arrow это успешно реализовано).

Quantum Harmonizer
01.04.2018
16:30:49

Руслан
01.04.2018
16:35:39
Так бывает когда нету проблемы, но очень хочется найти какое-нибудь решение.

Alexandr
01.04.2018
16:39:08

Oleksandr
01.04.2018
16:48:08

Leonid
01.04.2018
17:06:58

Руслан
01.04.2018
17:07:02
Я вижу тут два вопроса
1. Можно ли сделать Optional поверх корутин чтобы он поддерживался (как-то зачем-то) do?
2. Почему так не делают?
На первый я ответить не могу, но второй кажется очевиден: есть более удобный механизм — Optional как тип. И почему это нужно массам тоже не понятно.

Google

Oleksandr
01.04.2018
17:15:26
ну и стоит ли иметь много разных ad-hoc решений, когда можно сделать одно?

Leonid
01.04.2018
17:27:18
Корутины - средство избавления от коллбеков и то, что на них при большом желании можно делать optional монады, это всего лишь следствие этого, а не самоцель. Лично я не вижу смысла в монадах ради монад

Victor
01.04.2018
18:03:46


Mikhail
01.04.2018
18:13:34
по моему глубокому убеждению, ЯП должны дизайниться с минимумом "аксиом", и остальные возможности должны выводиться из них
в котлине решили, что ? стоит включить в этот стартовый пакет, это отдельный спор, но допустим
но тут я читаю, что один из дизайнеров и разработчиков языка утверждает, что они ввели механизм выражения абстракций через "корутины" (в кавычках для подчеркивания именно возможности абстракции над обычными корутинами), и что идиоматичнее для чейнинга функций таки юзать ?
значит ли это что-то из:
1) я кого-то не так понял
2) котлин перепишет core через "корутины"
3) вышеупомянутый разраб котлина преувеличивает полезность и юзабельность этого "общего механизма корутин"
?
Как я понял, ребята из JB готовы добавить все что попросите,если аргументируете это внушительной пачкой юзкейсов. Аргументы в духе "чтобы было круто/эстетично/духовно/православно/как в языке Х" не прокатят

Oleksandr
01.04.2018
18:28:00

Mikhail
01.04.2018
18:44:12
Ну, как по мне, ?.?.?.?. Явно короче do-нотации а-ля arrow и используется гораздо чаще остальных юзкейсов fmap

Kirill
01.04.2018
19:08:29
Вы так пишете будто из монад существует только Maybe и Future
Хотя последнее даже не lawful
А первое в жаве сделано не lawful

Oleksandr
01.04.2018
19:16:03

Kirill
01.04.2018
19:17:26
Это не говоря уже о самописных и трансформерах

Bogdan
01.04.2018
19:25:45
то чуство кода в оффтопе говорят больше поделу чм сдсь

Ivan
01.04.2018
19:25:57
Чёт с выходом arrow этот чат превратился в чат про функциональное программирование и я перестал понимать половины... можно тут несколько уточняющих моментов про монады? Или есть более специализированный чат для этого?

Bogdan
01.04.2018
19:26:42

Victor
01.04.2018
19:27:03
видимо, это такой вирус

Bogdan
01.04.2018
19:27:59

Роман
01.04.2018
19:28:32
видимо тебе надо поискать курсы про ФЯП

Igor
01.04.2018
19:30:55

Ivan
01.04.2018
19:31:09
Я просто начал въезжать зачем-то в эндофункторы, но понимание всё же ускользает. Вот у нас есть стрелка - это гомоморфизм, который переводит одно множество в другое(насколько корректно упрощать категорию до множества?)
И я так понял - это и есть функтор. Эндофунктор - это функтор который остаётся после преобразования в том же множестве. И типа монада - это эндофунктор, но в чём разница монады и этого эндофунктора?

Google

Oleksandr
01.04.2018
19:31:24

Igor
01.04.2018
19:32:13
Не “нас”, а вас ?

Alexander
01.04.2018
19:34:29

Like
01.04.2018
19:34:34

Alexander
01.04.2018
19:34:40
А в мск ещё 1 апреля
Тогда понятно

Ivan
01.04.2018
19:35:48

Роман
01.04.2018
19:36:28
https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B8%D1%8F_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B9

Dibro
01.04.2018
19:36:34
монады это вообще из абстрактной алгебры

Роман
01.04.2018
19:36:58
оттуда же кольца, группоиды и все такое?)

Dibro
01.04.2018
19:37:01
по-идее то что я должен знать (слушай я лекции)
да

Роман
01.04.2018
19:37:20
я на этой дичи засыпал

Dibro
01.04.2018
19:37:52
вообще вполне интересно, но препод у меня не ахти

Роман
01.04.2018
19:38:16
"дайте уже покодить, хватит этой теории ><"

Like
01.04.2018
19:38:57
это на каких специальностях преподают?

Роман
01.04.2018
19:39:07
инженер программист
прикладная математика/информатика.. да много где

Dibro
01.04.2018
19:39:43
вот я на прикладной математике (пока что)

Ivan
01.04.2018
19:40:09
стоп, а моноид и монада - это одно и тоже?

Google

Ivan
01.04.2018
19:40:23
по идее нет же, да?

Роман
01.04.2018
19:40:31
https://www.quora.com/What-is-the-difference-between-monoid-and-monad

Like
01.04.2018
19:40:33
буду знать, куда не поступать

Quantum Harmonizer
01.04.2018
19:40:37
монада — это моноид в категории эндофункторов ⓒ

Ivan
01.04.2018
19:40:54

Like
01.04.2018
19:40:57

Роман
01.04.2018
19:41:01

Ivan
01.04.2018
19:42:13
буду знать, куда не поступать
да ладно, зато отучишься и потом сможешь девок клеить фразой "Гомоморфный образ группы изоморфен факторгруппе по ядру гомоморфизма"

Роман
01.04.2018
19:42:43
мой тимлидер клеил в основном нас этими фразами

Ivan
01.04.2018
19:43:03
тоже неплохо )

Роман
01.04.2018
19:43:38
его уносило с байесовых классификаторов в теорию категорий и оттуда в NLR. На самом деле раздражает, когда валят тебя информацией.

Ivan
01.04.2018
19:44:34
о, тут всё-таки можно стикеры?
блин

Kirill
01.04.2018
19:46:37

Ivan
01.04.2018
19:59:14