В наши дни много говорят о монадах. Я прочитал несколько статей/сообщений в блогах, но я не могу пройти достаточно далеко, чтобы их примеры полностью поняли концепцию. Причина в том, что монады представляют собой концепцию функционального языка, и, следовательно, примеры на языках, с которыми я не работал (поскольку я не использовал функциональный язык по глубине). Я не могу понять синтаксис достаточно глубоко, чтобы полностью следить за статьями... но я могу сказать, что там что-то стоит понять.
Однако, я знаю С# довольно хорошо, включая лямбда-выражения и другие функциональные возможности. Я знаю, что у С# есть только набор функциональных возможностей, и поэтому, возможно, монады не могут быть выражены в С#.
Однако, конечно, можно передать концепцию? По крайней мере, я надеюсь. Возможно, вы можете представить пример С# в качестве основы, а затем описать, что разработчик С# мог пожелать, он мог бы сделать оттуда, но не может, потому что язык не имеет функций функционального программирования. Это было бы фантастически, потому что это передало бы намерения и преимущества монадов. Итак, вот мой вопрос: Какое лучшее объяснение вы можете дать монадам разработчику С# 3?
Спасибо!
(EDIT: Кстати, я знаю, что на SO есть как минимум 3 вопроса "что такое монада". Тем не менее, я сталкиваюсь с одной и той же проблемой с ними... так что этот вопрос нужен imo из-за С# -разработчик. Спасибо.)