В C# vs F# vs OCaml есть :?
- tagged union
- возможность использовать объекты без классов
- автоматический вывод типов для переменных
- приоритет на программирование на иммутабельных данных
- компиляция в standalone без необходимости тащить на клиента пару гигов рантайма
lex/yacc из коробки в базовой поставке
Я не в смысле споров, просто интересуюсь стоит ли связываться с тем же шарпом. Ни один не видел вживую, только камл чутьчуть потыркал.
К уже высказанному стоит упомянуть, что
1) F#,OCaml есть, в C# пока не ввели. Вообще, когда узнаешь про GADT, то начинаешь их хотеть много где, но они есть пока только в OCaml
2) OCaml +, C# отчасти +, так как там нельзя в анонимные объекты добавлять методы и возвращать их из фукнций (т.е. они в некотором смысле локальны)
3) Нужно хотеть автоматический вывод типов в принципе, а не только для переменных. OCaml с этим справляется чаще, чем F#, а тот чаще чем C#
4) F# и OCaml +.
5) Hello world на OCaml занимает 300 Кб + 3,5 МБ libc и прочего (которые ещё может быть можно застрипать)
6) lexyacc есть везде, но для OCaml стоит брать menhir, а для .NET YaccConstructor. Но лично я за парсер-комбинаторы
Ещё стоит обратить внимание
В F# вливается мало времени, так что запросто можно встретить, что идиоматичный функциональный код компилируется в какой-то отстой, который тормозит. Могу вспомнить пару историй, но может их уже пофиксили