Nikolay
Igor
Я не знаю (думал ты мне расскажешь).
Просто сейчас читаю книгу про OCaml, там одна из глав рассказывает про библиотеку Command для парсинга команда-лайн аргументов.
У нее прикольный синтаксис на комбинаторах.
Nikolay
Не знаю, не встречал такого
Igor
Ну вот, есть Argu http://fsprojects.github.io/Argu/
я правда хз, можно ли ее прикрутить к парсингу текста в бот
Klei
Анна
Nikolay
Анна
Но на хабр наверное надо написать пока не забыла
Vladislav
ты можешь контролировать свое выступление
Vladislav
но не то как публика воспримет
Vladislav
поэтому 2 тебя волновать не должно
Анна
Nikolay
Я просто ещё F# не очень знаю, мне было бы проще рассказать про внутренности .Net, оптимизацию и всё такое
Nikolay
Но никому не интересно)
Анна
Поверь, что бы ты ни рассказал, будет всё равно отлично по сравнению с фазовым прыгуном
Nikolay
От аудитории зависит)
Анна
там никакая аудитория не восприняла бы :)
Nikolay
Давайте может идею какую про .Net и C# :)
Vladislav
Nikolay
Vladislav
Syncfusion is a United States company and is subject to US export laws. Consequently, due to your location, we may not allow access to any material on our site.
If you believe that this is inaccurate, please contact sales@syncfusion.com Thank you.
Vladislav
Nikolay
Nikolay
Тоже сталкивался)
Dr. Friedrich
Ayrat
нашёл свой старый код с которого я начал переходить на фшарп
Ayrat
сигнатуры настолько большие что само название функции на второй строчке
Ayrat
я не сразу понял что вышенаписанное на F# будет в разы меньше места занимать.
x
Да, а почему везде Func?
Ayrat
Roman
Ayrat
К этому код пришёл сам, эволюционно. Я не был отбитым фпшником
Roman
Dr. Friedrich
и исключение не нужно было бы
А мне норм исключение, я и в F# так терминирую матчи: other -> failwithf <| sprintf "Cannot %A" other
Roman
Roman
ну, если не по енуму конечно
Dr. Friedrich
Ну, если там логичной обработки не подразумевается.
Ayrat
Да, а почему везде Func?
Прям ход мыслей не расскажу, давно дело было.
Это один из десятков вариантов расчёта пари в собачьих бегах. Во всем домене таких классов по логике расчета пари сотни сотен
Dr. Friedrich
У нас тоже был долгоиграющий проект с этими бегами.
Dr. Friedrich
Потом заказчик добавил ещё лошадей, и мы их в коде отнаследовали от собак :)
Ayrat
И вот эволюционно это самый короткий и ёмкий способ записи поведения расчета. На C#
Dr. Friedrich
Ayrat
Dr. Friedrich
Dr. Friedrich
Вроде как казахи просили не распространяться — на случай, если вдруг кто-то знает портабельные эксплоиты для нашего софта, видимо.
Dr. Friedrich
Клиенты были довольно хитрые
Dr. Friedrich
Dr. Friedrich
Иногда ты знаешь, что у тебя в этом месте кода валидны только несколько значений из перечисления. Но, чтобы заткнуть компилятор, приходится писать сниппет, как я показал выше.
Ayrat
Потом заказчик добавил ещё лошадей, и мы их в коде отнаследовали от собак :)
у нас было в начале забавнее. есть пари на победу собаки, а есть на победу по номеру будки (ставишь на первую заранее и пофигу кто там бежит).
вот мы в начале разницу не оценили и сделали то ли флагом, то ли наследованием. так у нас в первую ткстовую интеграцию с фронтом и бд побежали будки, а собаки остались. было смешно
Romɑn
Romɑn
Анна
Dr. Friedrich
Dr. Friedrich
Эта история не шуточная, если чо. Реально была такая цепочка наследования в продакшене. Позже её исправили — общий код вынесли в класс «гонка», а от него сделали два наследника.
Анна
Ну мне надо будет сказать, что с наследованием нужно осторожно и что есть альтернативы
Анна
Вот такой огонек отлично запомнится я думаю
Dmitry
x
😂
Bonart
Bonart
Нужда=либа, с которой без наследования от ее классов не поработаешь
Bonart
Еще нежелателен, но возможен вариант когда все не-sealed классы internal
Vladislav
Мол у него опыт неоч
Vladislav
Незачем так писать - не поймет никто
Vladislav