lunes, 5 de junio de 2017

Lenguajes de programacion funcional

  •  Lisp: 
Lisp es un lenguaje tipo funcional, es el segundo lenguaje de alto nivel más viejo, los dialectos de Lisp más ampliamente conocidos son el Scheme y Common Lisp.
El nombre Lisp viene de "LISt Processing" (Proceso de LIStas). Una de las estructuras de datos importante de Lisp son las listas encadenadas, el código fuente de lisp esta compuesto de listas.
Es un lenguaje útil para desarrollar la inteligencia artificial.


  • Camel:
CAMEL es un estilo de escritura que se aplica a frases o palabras compuestas. El nombre se debe a que las mayúsculas a lo largo de una palabra en Camel se asemejan a las jorobas de un camello. El nombre Camel se podría traducir como Mayúsculas/Minúsculas Camello. El término case se traduce como "caja tipográfica", que a su vez implica si una letra es mayúscula o minúscula y tiene su origen en la disposición de los tipos móviles en casilleros o cajas.
Existen dos tipos de Camel:
UpperCamelCase
lowerCamelCase




Hope:
El Hope es un pequeño lenguaje el de programación funcional desarrollado en el principios de los 80 antes de Miranda y de Haskell. Es notable por ser el primer lenguage de programación con la evaluación del llamado-por-patrón y tipos de datos algebraicos. El Hope es un lenguaje importante en el desarrollo de la programación funcional. 
Un programa factorial en hope es: 

dec fact : num -> num; 
--- fact 0 <= 1; 
--- fact n <= n*fact(n-1); 

A diferencia del Haskell, el cambio de la orden de las cláusulas no cambiaría el significado del programa, porque en los modelos Hope, su adaptación favorece siempre patrones más específicos sobre los menos específicos. 

Otra manera de la cual la esperanza diferencia de Haskell y ML es que los tipos en Hope están declarados explícitamente, en vez de ser deducido por un algoritmo de tipo-inferencia.


  • Erlang:
Es un lenguaje funcional y de programación concurrente, fue diseñado por la compañía Ericsson con el propósito de hacer aplicaciones que puedan soportar fallos, funcionamiento ininterrumpido, aplicaciones distribuidas, entre otras cosas.
Tiene una característica muy importante "el cambio de código en caliente" el cual se refiere a poder modificar el código aun cuando la aplicación esta corriendo. Erlang no seguía la filosofía de código abierto hasta 1998 cuando Ericsson lo cedió como tal.
Erlang es un lenguaje interpretado, aunque también se puede compila usando el compilador HiPE, aunque este compilador solo es para algunas plataformas es muy bueno porque pude soportar la concurrencia característica muy distintiva del lenguaje.
Esta es la pagina oficial de HiPE.
Es posible que pensemos que entender este proceso de concurrencia es complicado y más aun aplicarlo en algún programa pero en Erlang la concurrencia es explicita y no implícita con en otros lenguajes.
El nombre de Erlang viene de las palabras Ericsson y Language.
Erlang lenguaje funcional
Los programa en Erlang están compuestos de bloques "funciones" y las identificamos por su nombre y el numero de argumentos de entrada también llamado "aridad". Por ejemplo las funciones multiplicacion/2, multiplicacion/3, multipicacion/4 pueden existir perfectamente juntas y llamándose a cada una según el numero de datos que se introduzca por el usuario, los resultados que devuelven las funcione son puede ser de cualquier elemento soportado por Erlang flotante, tupla, entero, lista.


  • F#(Functional#):
Es un lenguaje de programación, que proporciona la mejor combinación de seguridad, rendimiento y script, con todas las ventajas de ejecutarse en un runtime moderno. Se ejecuta sobre el Framework de .NET
Un lenguaje de programación de script, funcional, imperativo, orientado a objetos que es una base fantástica para realizar diversidad de tareas dentro de la programación:
Script interactivo como Phyton,
Ambiente interactivo de visualizacion de datos como MATLAB
Fuerte inferencia de tipos y seguridad de ML
Compilacion compatible compartida con el lenguaje popular OCaml
Un perfomance como C#
Facil acceso a todas las librerias de clases base que tenemos en .NET asi como herramientas de acceso a datos.
Manejo de esquemas
Una integración con Visual Studio
La velocidad de ejecucion de codigo nativo, ya sea portable, o distribuido.
El unico lenguaje que nos provee una combinacion como esta es F# que es pronunciado como FSharp, un lenguaje de programacion para scripts, funcional, imperativo, orientado a objetos, usado para muchas practicas cientificas, tareas en web, etc.

No hay comentarios.:

Publicar un comentario