Igor
NBomber?
точно! смотрели чо там?
Vasiliy
Кто то юзал тут кажется
Anatoly
Ужас какой, выучил паттерны, а они не работают
Roman
Ужас какой, выучил паттерны, а они не работают
1) Если ты хочешь матчить на тип, то это без when, вот так: match x with | :? X509Certificate2 as x ->... 2) если у тебя в матче все запихано в when в каждом кейсе, то проще уж if .. elif .. else использовать
Denis
Так вроде есть, или она сбрасывается?
Есть но он предлагает перейти на немодальный
Denis
И я боюсь как бы модальный не убрали в будущих версиях
Vagif
https://youtrack.jetbrains.com/issue/IDEA-35480
Кстати, всю неделю возился с переводом проекта сначала на F# 5, потом на .NET5. Вроде все нормально работает, единственное, чего не хватает - это понимания типов, создаваемых тайп-провайдеров (JSON type provider, например) в скриптах.
Igor
Есть но он предлагает перейти на немодальный
Ну ты крестик нажимаешь на тултипе и он больше не появляется. В следующих может конечно уберут, а может поймут что полное фуфло и никто не пользуется.
Vagif
а как же золотой принцип не пользоваться ТП?)
В скриптах нормально, довольно эффективно получается. Собственно им там и место, этим провайдерам, в интерактивном режиме
Roman
В скриптах нормально, довольно эффективно получается. Собственно им там и место, этим провайдерам, в интерактивном режиме
а в случае жсона не налетаете на неудобства с выводом типов по семплу? Или у вас всегда предсказуемый и полный формат соблюдается в семплах?
gsomix
@aensidhe В сигнатуре метода я вижу дженерик, а значит или нужен box, или явно указать тип.
Anatoly
Roman
а если в скобки взять то, что после when?
gsomix
ну указал. не поменялось
Как видишь, поменялось. Давай дальше разбираться. :)
Anatoly
Скобки не помогли
habib
as x2 нужно убрать. так работает только черет паттерн матчинг
Anatoly
as x2 нужно убрать. так работает только черет паттерн матчинг
это прекрасно, только мне нужны методы из downcasted типа
Roman
это прекрасно, только мне нужны методы из downcasted типа
вероятно, надо сделать вложенный матчинг. Сначала тот, что есть — на результат битовой операции, потом внутри сматчить certificate на подтип. Там можно будет as x2 точно
Vasily
Не надо
Roman
если тебе это нужно делать в нескольких местах, то можно актив паттерн нахуячить
Vasily
Внутри просто пишешь let cert = cert :?> Mytype
Roman
Внутри просто пишешь let cert = cert :?> Mytype
так ебнуть может, если подтип не соблюден
Roman
а, чисто чтобы алиас задать? Ну да, так можно. Но это уже вкусовщина
Vagif
Заведи, пожалуйста, тикет с репро?
Хорошо. Попробую сделать простой пример
Vasily
Я ж написал
Vasily
Шо надо
Vagif
Тогда тебе придется его даункастить в правой части
Vagif
Василий выше написал
Vagif
Если много такого кода будет, я бы убрал это все а Active pattern
Ayrat
When хочет булеан
Vasiliy
Anatoly
Да, так сработало
Ayrat
У тебя там | pattern & patern
Vagif
Заводишь активный паттерн let (|MyFirstType|MySecondType|_|) = и внутри все делаешь. Пользоваться - одно удовольстьвие
Vagif
@aensidhe посмотри, как будет время это https://www.meetup.com/ja-JP/FSharpOnline/events/269691546/ Я после этого митапа полдня с высунутым языком убирал всякую хрень типа как у тебя в активные паттерны
Vagif
я активные паттерны посмотрел, когда мне сказали выше. в данном случае сложно
Если у тебя в одном месте это надо заматчить, то заморачиваться не стоит. Если регулярно будешь такие матчи устраивать, то стоит убрать в общий код
Vagif
да, это понятно. у меня ровно одно место
Как говорил товарищ Фаулер, when it strikes three, you refactor. Я обычно начинаю обобщать после третьего раза.
Vagif
Как говорил товарищ Фаулер, when it strikes three, you refactor. Я обычно начинаю обобщать после третьего раза.
Три - это было минимальное количество членов первичной партийной организации в СССР. Чтобы если двое спорят, третий бы рассудил.
Vagif
если 2 спорят, рассудит товарищ Сталин!
С ним обычно немного по-другому заканчивалось.
Крылатый
Да, он обычно съедал.
gsomix
вероятно, надо сделать вложенный матчинг. Сначала тот, что есть — на результат битовой операции, потом внутри сматчить certificate на подтип. Там можно будет as x2 точно
А то и сделать декомпозицию на match и локальную функцию, получающую из сертификата имя. Тогда даже активные шаблоны не нужны.
Ayrat
Да, он обычно съедал.
Мемуары съеденных детей не дадут соврать
Mark
советская медицина умела воскрешать людей
Vagif
смотрел Death of Stalin?
Да, считаю, что все примерно так и было 😊
Roman
Мне вот понравилось очень, а родители не оценили юмор)
Vagif
Да, считаю, что все примерно так и было 😊
Там мне больше всего персонаж Молотова понравился. Которого Палин играл из Монти Пайтон.
Roman
Да, считаю, что все примерно так и было 😊
Кто-то говорил, что Хрущев в фильме слишком умный получился. Хз, так это или нет
Roman
Там мне больше всего персонаж Молотова понравился. Которого Палин играл из Монти Пайтон.
да, когда он толкал речь на заседании про The Committee as one прям топчик.
Roman
но мне не меньше понравился маленков
Vagif
Коллега сделал сегодняшнюю задачу из Advent of Code с computation expressions. https://gist.github.com/einarwh/47338e9d379b089fe8ce150b211a0c0f
Roman
Такой беспозвоночный чувак вышел, прям отлично
Vagif
Такой беспозвоночный чувак вышел, прям отлично
Ну Маленков и был такой. Вообще по поздним интервью Маленкова и Молотова, они же дожили до 80-х, особенно видно было, какая это была безмозглая серость. Заученные лозунги, и нихуя больше ничего.
Крылатый
Они же уже старые были. Что ты от них хотел?)
Крылатый
Глупо полагать, что до старости сохранится гибкость в мышлении.
Vagif
Они же уже старые были. Что ты от них хотел?)
От них я никогда ничего не хотел.
gsomix
Коллега сделал сегодняшнюю задачу из Advent of Code с computation expressions. https://gist.github.com/einarwh/47338e9d379b089fe8ce150b211a0c0f
Когда решаю подобные задачки, всегда борюсь с желанием писать production-ready код.
gsomix
Времени тратишь много, а результат такой же, если бы сделал хуяк-хуяк. :)
Mark
зато потом спишь крепко)
Mark
но это не точно