@dlangru

Страница 518 из 719
Pavel
14.04.2018
22:14:29
Это как интерфейсы у классов, только для структур и они более compile-time чтоли

Denis
14.04.2018
22:14:43
а почему это называется алгебраическим типом?

думал это про математику

Pavel
14.04.2018
22:15:51
Чето понятия не имею. Но так называется

Google
Pavel
14.04.2018
22:15:59
https://en.wikipedia.org/wiki/Algebraic_data_type

Один из многих примеров в CS когда за страшным ужасным названием скрывается абсолютно очевидная вещь.

Да еще там объяснено так что взрывается моск

Тип-сумма (англ. sum type; также Σ-тип, меченое объединение) — конструкция в языках программирования и интуиционистской теории типов[en], тип данных, построенный как дизъюнктное объединение исходных типов.

Denis
14.04.2018
22:18:32
на самом деле там union + флажок какой тип лежит

?

Pavel
14.04.2018
22:18:43
ага

Ну и немного статической магии, чтобы список возможных типов задавался фиксированно при объявлении алгебраика

Denis
14.04.2018
22:21:22
ну это в шаблоне происходит как я понимаю?

Pavel
14.04.2018
22:30:44
Да алгебраик это шаблон в котором нужно четко перечислить какие типы собираешься хранить внутри

Denis
14.04.2018
22:35:36
спасибо буду знать что такое уже изобретено

название не удачное это точно

Evgeny
15.04.2018
04:51:11
меченое объединение :) tagged algebraic

Google
Dmitry
15.04.2018
06:42:44
Кстати, а при вставке элмемента в начало массива получается, что аллокация будет *гарантирована*. Если в конце может быть место зарезервировано, то в начале же по идее такого быть не может

Maxim
15.04.2018
07:18:12
скорее всего, всё обойдется простым memmove внутри, аллокация будет, только если capacity меньше длины результирующего массива

Dmitry
15.04.2018
07:20:30
Т.е. сложность на O(1) будет как при вставке в конец?

Maxim
15.04.2018
07:22:29
не, там же в любом случае будет сдвиг всех элементов массива

Pavel
15.04.2018
10:30:26
о! https://dlang.org/phobos/std_variant.html#Algebraic

Pavel
15.04.2018
10:39:01
Да это именно оно

Pavel
15.04.2018
10:43:43
Я почему-то подумал будто свой делался.

Pavel
15.04.2018
10:46:38
Я делал надстройку над этим чтобы содержимое могло еще без лишних телодвижений сериализоваться в vibe json

Кто-то пробовал упарываться partial примененем шаблонов?

О нашел что-то, круто https://forum.dlang.org/thread/brolwqbcuvhzomnusxby@forum.dlang.org

Pavel
15.04.2018
15:03:03
Ну ты понимаешь что такое union?

Dmitry
15.04.2018
15:03:16
Нет

У меня каша в голове. Юнион, алгебраические типы, Variants и тд

Pavel
15.04.2018
15:05:08
Тогда наверно забей, лучше не знать чем иметь кашу

Но юнион это базовое понятие во всей этой иерархии

Dmitry
15.04.2018
15:06:14
Ну все же простыми словами можешь объяснить? Просто для меня Variant это структура которая может принимать фиксированный набор типов. Не больше, ни меньше

Denis
15.04.2018
15:34:55
Нет
Так иди и прочитай!

https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_(%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85)

целая статья аж в википедии

Google
Denis
15.04.2018
15:36:15
правда статья так себе

короче, на пальцах - union это то же самое что структура, но её члены лежат не рядышком друг с другом, а друг на друге. если запишешь одно то будет затёрто (повреждено, перезаписано) другое.

Dark
15.04.2018
15:37:46
Набор указателей на одну точку в пространство?

Pavel
15.04.2018
15:39:00
Пространство в памяти, достаточное для записи значения любого из указанных типов.

Ackeard
15.04.2018
15:42:53
А вариант это юнион с полем указывающим какой тип данных записан

Denis
15.04.2018
16:04:56
Например при безопасном изменении одного типа на другой (вместо cast)

то есть, ты точно знаешь что твой ubyte это char? отлично, клади их в union и забирай оттуда

Pavel
15.04.2018
16:06:37
А где это бывает полезно?
При реализации интерфейсов.

Но там уже Variant

qwerty
15.04.2018
16:37:29
Мне кажется или у нас в чате тот самый товарищ Лопатин?

qwerty
15.04.2018
16:38:38
User buggins (Vadim Lopatin) https://github.com/buggins

Vadim это Вы?

Pavel
15.04.2018
16:42:00
А где это бывает полезно?
Это полезно в моей телеге :)

Dmitry
15.04.2018
16:42:51
При реализации интерфейсов.
Блин, не понимаю. Можешь более развернуто ответить

Denis
15.04.2018
16:43:06
Блин, не понимаю. Можешь более развернуто ответить
Не нужно - не пользуйся. Пригодится вспомнишь.

Я за год юнионы раза 4 юзал всего

Google
Pavel
15.04.2018
16:45:43
Ну вот а мне прям в телеге понадобились почти сразу же причем без них можно сделать но очень криво будет

Ackeard
15.04.2018
16:45:50
Я использовал при унификации разных протоколов

Pavel
15.04.2018
16:46:03
Блин, не понимаю. Можешь более развернуто ответить
Например, обращаешься ты к БД. Пишешь запрос. Она возвращает тебе набор каких-либо значений. Каких типов они могут быть и как их получить?

Pavel
15.04.2018
16:46:19
Еще и chat_id надо тоже переделать на алгебраик

Denis
15.04.2018
17:15:45
@chebotarevp https://github.com/nexor/telega/pull/3 а почему оно падает в CI?

https://github.com/ikod/dlang-requests вот такое же и не падает

Pavel
15.04.2018
17:16:27
Да хз написано что там нет ssl библиотеки

Admin
ERROR: S client not available

Pavel
15.04.2018
17:16:33
Потом разберусь

Denis
15.04.2018
17:16:48
конфиги тревеса сравнить вроде одинаковые

но он вайб в зависимости добавляет как 0.8

но подхватывается 0.8.3

странное короч

Ну вот, ничего не заблокировали

DarkRiDDeR
16.04.2018
01:34:16
москва ещё не проснулась

Maxim
16.04.2018
02:06:47
Реестр же 2 раза в день обновляется, вроде)

Stanislav
16.04.2018
02:12:34
Не-а

Когда захотят плюс есть понятие срочная блокировка, где нужно в течение часа заблокировать ресурс

Ну и почти все операторы как минимум в час выгрузку делают

Maxim
16.04.2018
04:08:23
ну будем ждать)

Google
Igor
16.04.2018
05:42:35
https://github.com/ikod/dlang-requests вот такое же и не падает
Там ищется и динамически подгружается доступная библиотека во время выполнения. В vibe она нужна во время компиляции и ему еще нужно знать версию libssl при компиляции. Есть где запутаться

Pavel
16.04.2018
05:45:22
Да вроде как я понял там сборка как раз тестируется на версии без vibed

Igor
16.04.2018
05:46:28
В requests?

Vadim
16.04.2018
05:46:31
Vadim это Вы? > ага

Igor
16.04.2018
05:48:30
Да вроде как я понял там сборка как раз тестируется на версии без vibed
Да, без него. Если requests компилится с поддержкой vibe то конечно расчитывает уже полностью на vibe в плане ssl

Dmitry
16.04.2018
06:10:14
Да, без него. Если requests компилится с поддержкой vibe то конечно расчитывает уже полностью на vibe в плане ssl
Слух, а ты - автор этой либы, верно же? Если да то мы в скайпе ее в свое время с тобой отлаживали по части openssl. У меня оно все не собиралось

Igor
16.04.2018
06:15:16
Да

Pavel
16.04.2018
06:33:09
Оо автор в чате) а я как то не догадался. Ну респект ?

Igor
16.04.2018
06:38:15
Спасиб )

Denis
16.04.2018
07:13:41
Да
+ респект, юзаем у себя

Igor
16.04.2018
07:18:29
Evgeny
16.04.2018
07:41:50
Да
Кек, значит вот кто выполнил мою просьбу :) https://github.com/ikod/dlang-requests/issues/51

Да, это радует, что автор в чате и русскоговорящий :)

правда я так и не воспользовался либой, но возможно воспользуюсь

Igor
16.04.2018
07:43:34
да, я стараюсь добавлять фичи именно по запросу тк фич можно придумать много, но неизвестно кому они нужны и нужны ли вообще

Evgeny
16.04.2018
07:44:14
за имплементацию этой фичи в вайб, я заплатил сонке 70 евро :)

Igor
16.04.2018
07:44:26
))))) капец

Evgeny
16.04.2018
07:45:16
Ну я бы и тебе заплатил, если бы нужно было. Не вижу ничего плохого, чтобы платить людям за выполненную работу, особенно если эта работа прямо влияет на мою прибыль :)

Страница 518 из 719