Shub
а компилятор не сможет вывести тип как алиас в случае с традиционной декларацией
Shub
воо
Ayrat
а компилятор не сможет вывести тип как алиас в случае с традиционной декларацией
Сможет если ты возвращаешь результат, который возвращает алиас
Igor
похоже я еще не дошел до этих алиасов, пока нигде не использовал
Shub
Сможет если ты возвращаешь результат, который возвращает алиас
только если явно аннотация стоит вроде бы. иференс игнорирует алиасы насколько я понял
Igor
и воще теперь непонятно, буду ли я их когда нибудь использовать! Директор сказал или cpp или жава, даже котлин или скалу нельзя!
Igor
а от жавы у меня кровь из глаз
Ayrat
только если явно аннотация стоит вроде бы. иференс игнорирует алиасы насколько я понял
https://sharplab.io/#v2:DYLgZgzgPgLgngBwKYAICqEkCcCSATFAXhQEsA7GAWACgbgkYUBjLJAQxiQ23wAoBKEOky4CxAIwoA9FICuZEowC0APmE88NOg1Jkw2JHm6iBRZqw5cRfftKkp5ilKvWiUvcvqys8/IA
Ayrat
Я на удачу код ебанул, под рукой компилятора нет. Но я почти уверен что вторая функция поинферит unit -> UserId
Ayrat
а не unit -> int
Shub
убери аннотацию во второй строке
Shub
щас проверю с компилятором.
Ayrat
убери аннотацию во второй строке
Ненене, инферится в третьей строке
Ayrat
Там никаких аннотаций
Shub
ща, секундочку
Ayrat
Во второй я явно говорю, без этого никуда, это понятно
Igor
вот где было написано (может даже в этом чате), что эти алиасы только видимая безопасность. Зачем их использовать?
Shub
мой поинт в том, что если где-то в графе разрешения типов не будет стоять явной аннотации - алиас не инферрится. только что проверил
Ayrat
Там оно реально как сокращение сигнатуры используется
Ayrat
Вместо простыни стрелок одно слово
Shub
я их использую как заглушки для типов, которые я еще не детализировал. часто делаю что-то типа type EntityId = string
Shub
угу
Vasily
Я вот сегодня написал одну сртп функцию, строчек 200 сэкономил
Shub
ах ты ж еретик
Vladimir
насчет алиасов - есть кейс когда просто никак не напишешь без алиса. Когда тип - тупл и является параметром DU и хочешь заматчить сразу весь тип
Shub
Complex type hacks Don't do it! F# has Statically Resolved Type Parameters (SRTP) which can be used to do polymorphism, monads, etc. Don't! KISS - simple is better than complex!
Shub
это написал не кто-то там, а сам пресвятой Влашин (да святится имя его)
Shub
https://gist.github.com/swlaschin/31d5a0a2c4478e82e3ed60d653c0206b
Shub
у нас тут давеча вышел очередной спор на тему “как ПРАВИЛЬНО писать на F#”. я говорю - ну вон там ваш Влашин соглашается со мной, вот глава и номер стиха из Писания.
Shub
мне ответили “в этом месте Писание туманно, поэтому из предосторожности мы эту часть игнорируем"
Shub
(и тут я почти уверовал )
Vladislav
А я написал сртп класс на той неделе
Vladislav
Igor
даже я сртп понял, главное в активпатерн его засунуть, и получается просто
Vasily
ах ты ж еретик
Да я просто повторяющийся код убрал
Vasily
Вон Влад подтвердит
Vladislav
Подтверждаю
Hog
Подтверждаю
ещё б ты не :))))
Vladislav
А моя хтоническая штука даже дополнительного кода не потребовала
Vladislav
Встала как родная на место
Vladislav
....где уже были сртп
Vladislav
Vasily
Вот всякие комонады иногда хочется, конечно, но нужен большой опыт для корректного применения
Vladislav
А то получится блицкриг в один день
Vasily
Нахер мне код, который кроме меня никто не поймет?
Shub
Нахер мне код, который кроме меня никто не поймет?
поэтому я предпочитаю интерфейсы srtp
Igor
Пиши на компиляторе cpp. Видел компилятор лямбда исчисления в темплейты, огонь же
да мне коллега показал уже на работе немного, выглядит вполне человечно, не то что раньше
Doge
Вот всякие комонады иногда хочется, конечно, но нужен большой опыт для корректного применения
Комонады-то нафигу? У них только Store хоть как-то разумна, но она дико редко нужна.
Doge
да мне коллега показал уже на работе немного, выглядит вполне человечно, не то что раньше
Там главное, чтобы легаси на плюсах не было, а то там может ужасающий треш быть
Vasily
Комонады-то нафигу? У них только Store хоть как-то разумна, но она дико редко нужна.
Ну у меня куча кейсов типа "загрузи оттуда, если не загружено, протухни через некоторое время"
Doge
не, это абсолютно с нуля будет
Тогда да, на современных плюсах можно почти как на расте писать.
Doge
С либами и их подключением проблемы правда
Doge
И пакетного менеджера толкового нет
Doge
И системы сборки. И с ide проблемы бывают
Vasily
Как хорошо, что я 15 лет назад оставил с++
Bonart
А почему кофе среднего рода?
Потому что не всякое кофе достойно мужского
Doge
Ну у меня куча кейсов типа "загрузи оттуда, если не загружено, протухни через некоторое время"
Всегда можно спрятать название комонады, чтобы не пугать народ. Выбрать нормальные названия методов и вообще понятно будет.
Hog
джоб секурити!111
сру обскурити
Bonart
И? пойти джуном на любимой технологии?
Зачем? Найти сначала контору с менее прынцыпиальным директором
Igor
да я фарш только начал изучать как пару месяцев, куда я пойду. Точнее кто меня возьмет
Hog
Зачем? Найти сначала контору с менее прынцыпиальным директором
это какой-то миф про синьёра, который при смене стека становится джуном
Hog
может быть - но на на онбординге 100% отдачи никто не ждёт, а за это время - можно чо угодно выучить
Anatoly
может быть - но на на онбординге 100% отдачи никто не ждёт, а за это время - можно чо угодно выучить
Мне как-то босс, один из предыдущих, говорил, что если человек перестал вредить проекту через три месяца, то он хороший специалист
Hog
да - 90 дней норм.
Vasily
джоб секурити!111
Вот ща обидно было. Никогда к этому не стремился
Vasily
Но в мск на джуновские бабки