functional programming - programacion - Nuevos lenguajes funcionales
programacion funcional ventajas y desventajas (9)
La programación funcional ha existido desde al menos 1958 (creación de Lisp), pero está experimentando un renacimiento ahora con los viejos lenguajes funcionales desempolvados y creando nuevos lenguajes funcionales.
¿Qué lenguajes funcionales hay recientemente desarrollados o en preparación?
Me doy cuenta de que puede escribir programas puramente funcionales en la mayoría de los lenguajes de alto nivel, así que con los lenguajes funcionales implico los lenguajes que están específicamente diseñados para programación funcional como F #.
Si tiene enlaces a tutoriales, wikis o ejemplos de código, lo animo a que los agregue a su respuesta.
Aquí hay una breve lista de los que he probado hasta ahora (a excepción de F #, que ya mencionó):
- Haskell (escrito estáticamente, puro): ten en cuenta el ebook gratuito Haskell del mundo real , con todo lo que necesitas saber al respecto
- Clojure (tipeado dinámicamente, unpure)
- Scala (estáticamente estátizado, unpure) - interoperabilidad completa (bidireccional) con Java
- Neolengua
- Erlang : hecho para manejar fácilmente la concurrencia
Erlang, OCaml, Haskell, Scheme y lenguajes de programación específicos de dominio como R (estadísticas), Mathematica (matemática simbólica), J y K (análisis financiero) y XSLT (XML)
Me gustaría agregar OCaml a la mezcla. Me atrajo porque tiene un fuerte enfoque en el rendimiento. Si lo entiendo bien, F # se deriva de OCaml.
Pero no solo es funcional, también es adecuado para la programación imperativa.
Haskell ha existido por un tiempo, y se hace un montón de cosas básicas (suficientes para escribir aplicaciones de producción sólida), pero en muchos sentidos sigue siendo un lenguaje académico. Esto es realmente hermoso: como programador comercial, puedo hacer bien mi trabajo, pero tengo la capacidad de profundizar en algunos de los conceptos y técnicas más interesantes que no están disponibles en otros idiomas sin cambiar a dialectos. donde no puedo implementar mi código día a día.
Al programar en Haskell, es fascinante ver el futuro tan cerca que puedes tocarlo.
Me divierte que el trabajo antiguo como ML (Caml), Haskell y Erlang se haga pasar por "nuevo". Scala es realmente nuevo, y F # es un intento de adaptar un ML de lenguaje antiguo al .NET framework y seguramente será interesante.
Si quieres algo realmente nuevo, Agda es "el nuevo Haskell". Agda incorpora las muchas lecciones aprendidas de lenguajes de hace 20 años como Haskell y lenguajes de hace 30 años como ML, y amplía los límites con el último trabajo en sistemas de tipos. ¡Garantizado para hacer estallar su cabeza o duplicar su dinero!
Bueno, si quieres algo nuevo, prueba Babel-17. Solo capturas: aún no hay implementación de eso :-) Pero hay una especificación. Visite http://www.babel-17.com .
La programación funcional ahora ha sido adoptada en la corriente principal, por lo que lo que antes era una unidad exclusivamente académica ahora se ha dividido en implementaciones académicas e industriales.
F # es un ejemplo de alto perfil de un lenguaje funcional industrial en desarrollo ( aquí hay un ejemplo del Juego de la vida de John Conway con GUI escrito en 32 líneas de F #, aquí está mi libro sobre F #). Otros incluyen Clojure por Rich Hickey y HLVM por mí mismo.
Los últimos lenguajes funcionales de alto perfil del mundo académico son ATSLang y Scala.
Un nuevo lenguaje funcional con un enfoque principal en la metaprogramación:
http://www.meta-alternative.net/mbase.html
Algunos ejemplos: http://www.meta-alternative.net/pfront.pdf
Nemerle es un lenguaje funcional, estáticamente tipado con un amplio soporte de metaprogramación para .NET. Al igual que F #, se inspiró en ML, pero su sintaxis sigue de cerca a C #, por lo que es mucho más legible. La inferencia de tipo en Nemerle es incluso más poderosa que las ML, lo que le permite inferir tipos de uso en presencia de sobrecarga.