Мне нравится использовать его всякий раз, когда мне нужна поддержка синтаксического анализатора (в настоящее время вы можете назвать его DSL) и всякий раз, когда я реализую алгоритмы обработки символов.
Последний продуктивный код, который я написал на F #, касается фильтров (используется для фильтрации входящих сообщений в службу регистрации). У меня есть пара базовых фильтров (которые обрабатывают тему и т. Д.) И логические фильтры более высокого порядка, которые объединяют другие фильтры с операторами AND / OR / NOT.
Реализация упрощает такие «выражения», преобразовывая их в CNF, собирая по типу и используя специальные правила (например, <5 && a <10 => a <5 и т. Д.)
Кроме того, я создал простой парсер с помощью fsyacc, чтобы предоставить пользователям этого сервиса более простой способ создания фильтров. </p>
Полагаю, что в F # дырка имеет столько строк кода, сколько мне понадобилось бы для C #, чтобы написать только упрощение;)