Помимо статических, функциональных модулей и объектов, вы можете попытаться получить некоторые преимущества F #, используя C # 3 и лямбда-выражения, LINQ и т. Д. Однако это не так уж далеко. Что мне нравится в F #:
- Вывод везде
- Автообобщение (добавляет параметры типа, поэтому мне не нужно разбирать его вручную)
- Легкая неизменность
- Простое сочетание между модулем и классами
- Типы, подобные дискриминированным союзам
- Сопоставление с образцом
- Вложенные функции (облегченные)
- Функции первого класса (нет, именованные делегаты C # не учитываются)
- Все есть выражение
- Простая функция композиции
Итак, вы можете попробовать сделать это в C #. Некоторые из них просто не поддерживаются и не будут работать. Остальное становится очень уродливым, очень быстрым.
Так что, если вы сильно отойдете от проторенного пути LINQ и Enumerable расширений, вы, вероятно, окажетесь в мире боли.