@kotlin_lang

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

Oleksandr
01.04.2018
14:21:36
так проще и понятнее, как минимум
окей, в каких случаях "общий механизм корутин" (в кавычках, чтобы отделить от непосредственно корутин) таки более идиоматичен?

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

Kirill
01.04.2018
14:24:31
Kirill
01.04.2018
14:25:39
"так" это как?
используя монады на корутинах из Arrow

Oleksandr
01.04.2018
14:26:10
используя монады на корутинах из Arrow
и что, тогда это будет одобренныс идиоматичным стилем написания?

казалось мне, это не должно зависеть от пишучего код

Oleksandr
01.04.2018
14:27:19
в отдельно взятой команде :)
ну я могу в свой команде через return codes писать вообще

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

Igor
01.04.2018
14:31:17
нет, не поддерживают, тк императивные операции не есть монадами в строгом смысле обзывать "обычные строчки кода" ио нельзя ещё и потому, что теряется главный смысл всех плясок с монадами -- отделение pure кода дальше, кому это "всем известно" ? аналогия "монада -- это буррито" где-то такая же точная и верная, как это высказывание в статье
> отделение pure кода А так ли для этого нужны именно монады? Теже suspend функции нельзя вызвать из обычного кода (не скомпилируется), у тебя для этого должна быть "capability" (контекст). Одерский вон тоже, думает как заменить монадки, на эффекты.

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

> отделение pure кода А так ли для этого нужны именно монады? Теже suspend функции нельзя вызвать из обычного кода (не скомпилируется), у тебя для этого должна быть "capability" (контекст). Одерский вон тоже, думает как заменить монадки, на эффекты.
я не уверен, что это единственный способ достичь цели, но через них это точно работает слышал про Eff, но только слышал, не смотрел ну как Одерски сделает, с интересом гляну

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

Google
Руслан
01.04.2018
15:29:01
что известно по корутинам в 1.3? какие breaking changes будут?
Спросим начальника транспортного цеха @aleksey_shipilev

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
16:25:27
чего именно? там простыня текста
Про какие абстракции с ? идёт речь? Или просто скиньте, пожалуйста, ссылку

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

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

Oleksandr
01.04.2018
16:48:08
Не понимаю язык монад, так что смысл сообщения размыт для меня.
их смысл, tldr: "корутины сделаны абстрактным образом, и на их базе можно делать тот же опшн", но этого не делается

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

Google
Oleksandr
01.04.2018
17:15:26
Можно, но зачем если есть более простой и удобный ?
потому что мало смысла делать абстрактные неиспользуемые (1 применение) корутины

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

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

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

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
Вы так пишете будто из монад существует только Maybe и Future
вот кстати да, IO, Maybe, Future -- других обычно не упоминают

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

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

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

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

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

Igor
01.04.2018
19:30:55
вот кстати да, IO, Maybe, Future -- других обычно не упоминают
Ты кстати забыл про б̶у̶л̶ь̶о̶н̶ Reader монадку (тоже полезная)

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

Google
Oleksandr
01.04.2018
19:31:24
Ты кстати забыл про б̶у̶л̶ь̶о̶н̶ Reader монадку (тоже полезная)
тут нас сейчас забанят за такие страшные слова

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

Alexander
01.04.2018
19:34:29
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: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

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