Функциональное программирование набирает популярность с каждым днём. Тут и там выходят новые библиотеки, фреймворки и языки, вдохновлённые функциональными концепциями. Всё больше программистов начинают ценить неизменяемое состояние и чистые функции, простую и удобную композицию конструкций и компилятор, находящий львиную долю ошибок ещё до запуска приложения. Язык C# с каждым годом вбирает в себя новые идеи из мира функционального программирования. Мы уже привыкли к удобному Linq и к передаче функций как параметров. А иногда C# и сам становится колыбелью новых идей, например, Reactive Extensions (спасибо Эрику Мейеру). Интересно, какие ещё конструкции функционального программирования можно было бы использовать в C#? Об этом мы и поговорим в нашем докладе. Заодно узнаем, как обрабатывать ошибки в стиле функционального программирования, как избавиться от Null Reference Exception, как ещё можно использовать LINQ и многое другое.