Diferencias significativas entre F#y Clojure
functional-programming (7)
¿Cuáles son las diferencias más significativas entre F # y Clojure?
¿Qué construcciones tiene F # que Clojure no tiene y viceversa?
¿F # tiene macros?
Ambos son primeros lenguajes de programación funcionales , pero sus sistemas de tipo son muy diferentes. F # es un lenguaje fuertemente tipado y Clojure es un lenguaje tipado dinámicamente y por lo tanto
- La respuesta de Boumbles a ¿Cuál es la diferencia entre la tipificación fuerte frente a la estática y la tipificación débil frente a la dinámica ?
- la respuesta de Haylem a estudios de idiomas dinámicamente versus tipados estáticamente ; o
- La pregunta de Joey Adams ¿ Qué es mejor para la creación de prototipos: un lenguaje de tipo estático o uno de tipo dinámico?
puede ayudar a responder "¿cuáles son las diferencias más significativas entre F # y Clojure?". Sin embargo, tenga en cuenta que el debate entre "tipado estático" y "tipado dinámico" es de larga ejecución y, por lo tanto, puede parecer religioso.
Clojure es un lisp, lenguaje de familia real lisp-1. F # es prácticamente adoptado por OCaml a la plataforma .net.
F # realmente corresponde a Scala en JVM. Lo más parecido a Clojure en la plataforma .NET es IronScheme.
La mayoría de las diferencias surgirán del hecho de que F # desciende de ML mientras que clojure desciende de lisp .
Entonces F # tiene más sensación de ML / OCaml / Haskell con énfasis en:
- tipeo estático
- escriba inferencia
- la coincidencia de patrones
Mientras que Clojure tiene más de una sensación Lisp con énfasis en:
- s-expresiones
- macros
- cierres
También, como señaló Brian, F # es un lenguaje .Net, mientras que clojure es un lenguaje JVM, por lo que cada uno tendrá acceso a un amplio pero diferente conjunto de bibliotecas.
Parece que hay algo de esfuerzo en poner en marcha Clojure en el CLR. Parece muy prometedor.
Una diferencia clave es que F # es un lenguaje .NET, mientras que Clojure se ejecuta en una JVM. Por lo tanto, las implementaciones y las plataformas compatibles serán diferentes.
Tenga en cuenta que F # es compatible con mono, sin embargo.
En cuanto a las macros, creo que no tienes suerte .