люблю методы расширения, лямбда-выражения, анонимные функции, типы, а с C# 7.0 ещё и ValueTuples, да и прочий "функциональный сахар" в C# и никогда не упущу возможность "заиспользовать" где уместно ^^ в C# так же можно использовать и "лямбда-замыкания", и "каррирование", теперь вот оказалось что и "монады" это предельно просто, само название страшнее чем суть ) спасибо за материал :) понимаю так же, что материал датирован аж 12-ым годом, да и он в целом не об этом, однако для решения конкретно этой задачи, уже так же достаточно давно, можно писать так: var address = person?.Address?.HouseName; оно в "ифы" разворачивается после компиляции, которые дешевле вызовов метода расширения "With" (ветвление скорее всего не заинлайнятся даже c [MethodImpl(MethodImplOptions.AggressiveInlining)] однако, с With - выглядит куда приятнее и описательней, и в большинстве случаев там, где используется - не критично, а там, где критично, лучше и ветвлений по возможности избегать )
В принципе все правильно, только ограничения на технологии в разработке никто не отменял. А так можно и корпоративный софт пописать, и функциональщиной попользоваться...
Мне кажется, что если программист дошёл до того, чтобы интересоваться тем, что из себя представляют монады, самое время перебрасывать взор со всего этого корпоративного говна, вроде C#, Java и даже F# на Haskell. C# с монадами - это как ведро говна с ложкой повидла. Однако автору, всё равно, хвала, что продвигает культуру функциональщины в массы.
Обожаю такой стиль написания!
Автору огромное спасибо.
*Only 18* 👇👇👇
142654.loveisreal.ru
Всегда рад!
люблю методы расширения, лямбда-выражения, анонимные функции, типы, а с C# 7.0 ещё и ValueTuples, да и прочий "функциональный сахар" в C# и никогда не упущу возможность "заиспользовать" где уместно ^^
в C# так же можно использовать и "лямбда-замыкания", и "каррирование", теперь вот оказалось что и "монады" это предельно просто, само название страшнее чем суть ) спасибо за материал :)
понимаю так же, что материал датирован аж 12-ым годом, да и он в целом не об этом, однако для решения конкретно этой задачи, уже так же достаточно давно, можно писать так:
var address = person?.Address?.HouseName;
оно в "ифы" разворачивается после компиляции, которые дешевле вызовов метода расширения "With" (ветвление скорее всего не заинлайнятся даже c [MethodImpl(MethodImplOptions.AggressiveInlining)]
однако, с With - выглядит куда приятнее и описательней, и в большинстве случаев там, где используется - не критично, а там, где критично, лучше и ветвлений по возможности избегать )
Спасибо, что потратили время на запись интересного скринкаста!
Отлично заходит в старом софте где нет Null-Conditional Operator - оператор ?
В принципе все правильно, только ограничения на технологии в разработке никто не отменял. А так можно и корпоративный софт пописать, и функциональщиной попользоваться...
Очень здорово получилось!!!
Здорово!
Спасибо. Приятно разложили. Хотел бы увидеть "эффективная работа в vs 2010. Вы так резво решапером управляетесть.
Кайф, спасибо)
Посмотрел и понял, какой же Python прекрасный ^_^
Компилятор может упростить эти выражения, что бы был обычный if, а не метод? И сказывается ли это на быстродействии?
Пожалуйста!
*Only 18+* 👇👇👇 🔞
i96627608.sweetloves.ru
Мне кажется, что если программист дошёл до того, чтобы интересоваться тем, что из себя представляют монады, самое время перебрасывать взор со всего этого корпоративного говна, вроде C#, Java и даже F# на Haskell. C# с монадами - это как ведро говна с ложкой повидла. Однако автору, всё равно, хвала, что продвигает культуру функциональщины в массы.
Немного некро: "C# с монадами - это как ведро говна с ложкой повидла", почему с# всего ложка?
Наверное в 2012? =) 2010 уже, можно считать, устарела.
привет из 2022. всё актуально)
К чему эти дурацкие сравнения?) В одних вещах прекрасен, в других ужасен. И так для всех ЯП.