F #, en muchos aspectos, puede ser mejor que la mayoría de los "otros lenguajes de programación funcional clásicos [s]". Como usted ya sabe .NET, podrás aprovechar al máximo todo el conocimiento de su .NET al recoger dos cosas útiles a partir de F #:
El paradigma de programación funcional. Es decir, cómo programar en el estilo de FP. Puedes usar eso en cualquier idioma. A menudo aprendo hacia FP en mi código C#, porque considero que es una forma mucho más fácil de mantener y reutilizable para escribir software.
La sintaxis de programación funcional de un idioma. F # es muy similar a OCAML, y la familia ML constituye uno de los 3 dialectos principales de los lenguajes de FP. Los otros dos grandes son la familia Miranda (de la cual Haskell es el principal representante moderno) y la familia LISP (donde Common Lisp y Scheme son los dos grandes representantes).
En F #, podría ayudarlo a hacer la distinción muy claramente entre los tipos F # y .NET. Los registros, tuplas y uniones discriminadas son (casi) puramente cosas F #, y se utilizan en casi todos los idiomas funcionales. Úselos mucho si quiere aprender FP. Las clases, estructuras e interfaces también están allí, pero esos son conceptos de .NET. Úselos según sea necesario, pero trate de evitarlos en general, para que no termine escribiendo "C# con una sintaxis tonta" en lugar de F # idiomático.
Las cosas que realmente se perderá de Haskell son la verdadera pureza (eh, no tanto), la evaluación perezosa por defecto (un gran cambio) y las clases de tipo. Puedes hacer la evaluación diferida en F #, pero tienes que usar las clases explícitas Lazy <> para obtenerla. Tener evaluaciones flojas en todas partes es una de las cosas realmente únicas y poderosas en Haskell, pero no es un concepto de FP estricto. Las clases de tipo son muy potentes, pero puedes arreglártelas sin ellas para la mayoría de las situaciones del mundo real. Son solo un nivel más alto de abstracción que reduce la repetición y la placa de la caldera.
La verdadera pureza suele ser más académica. Tiene ciertas ventajas, pero si ya está acostumbrado a las técnicas impuras y de .NET, en su mayor parte solo le resultará difícil trabajar hasta que haya adquirido completamente la mentalidad de FP.
Puede usar muchas de las ideas de FP en muchos idiomas diferentes. La pregunta no es si "perforará FP en mi cráneo": la pregunta es si fomentará buenos hábitos de PF o malos. –