Lenguajes de programacion funcional

Lenguajes de programacion funcional

fortran

En informática, la programación funcional es un paradigma de programación en el que los programas se construyen aplicando y componiendo funciones. Es un paradigma de programación declarativo en el que las definiciones de funciones son árboles de expresiones que asignan valores a otros valores, en lugar de una secuencia de sentencias imperativas que actualizan el estado de ejecución del programa.

En la programación funcional, las funciones son tratadas como ciudadanos de primera clase, lo que significa que pueden vincularse a nombres (incluidos los identificadores locales), pasarse como argumentos y devolverse desde otras funciones, al igual que cualquier otro tipo de datos. Esto permite escribir los programas con un estilo declarativo y componible, en el que las funciones pequeñas se combinan de forma modular.

La programación funcional se considera a veces sinónimo de la programación puramente funcional, un subconjunto de la programación funcional que trata todas las funciones como funciones matemáticas deterministas, o funciones puras. Cuando se llama a una función pura con unos argumentos dados, siempre devolverá el mismo resultado, y no puede verse afectada por ningún estado mutable u otros efectos secundarios. Esto contrasta con los procedimientos impuros, comunes en la programación imperativa, que pueden tener efectos secundarios (como la modificación del estado del programa o la toma de datos de un usuario). Los defensores de la programación puramente funcional afirman que al restringir los efectos secundarios, los programas pueden tener menos errores, ser más fáciles de depurar y probar, y ser más adecuados para la verificación formal[1][2].

Leer Más  Programacion de paginas web

programa procedimentalmi

return fib(n – 1) + fib(n – 2);Transparencia referencial: En los programas funcionales las variables una vez definidas no cambian su valor a lo largo del programa. Los programas funcionales no tienen sentencias de asignación. Si tenemos que almacenar algún valor, definimos nuevas variables en su lugar. Esto elimina cualquier posibilidad de efectos secundarios porque cualquier variable puede ser reemplazada por su valor real en cualquier punto de la ejecución. El estado de cualquier variable es constante en cualquier instante.  Ejemplo: x = x + 1 // esto cambia el valor asignado a la variable x.

c++

C++ es un lenguaje multiparadigma a nivel de sistemas que proporciona abstracciones de alto nivel con un coste de ejecución muy bajo (a menudo nulo). Los paradigmas que suelen asociarse a C++ son la programación procedimental, la orientada a objetos y la genérica. Dado que C++ proporciona excelentes herramientas para la programación de alto nivel, incluso la programación de estilo funcional es bastante razonable.

Por programación de estilo funcional, no quiero decir que la programación sea estrictamente funcional, sino que es fácil utilizar muchos de los bloques de construcción funcionales de C++. Este artículo se centrará en una de las construcciones de programación funcional más importantes: trabajar con valores en lugar de con identidades. Discutiré el fuerte soporte que C++ siempre ha tenido para trabajar con valores, y luego mostraré cómo el nuevo estándar C++ 11 expande este soporte con lambdas. Por último, presentaré un método para trabajar con estructuras de datos inmutables que mantiene la velocidad por la que se conoce a C++, a la vez que proporciona la protección que los lenguajes funcionales han disfrutado durante mucho tiempo.

Leer Más  Programa para hacer diagramas electricos industriales

Permítanme explicar primero a qué me refiero con trabajar con valores en lugar de identidades. Los valores simples como 1, 2 y 3 son fáciles de identificar. También podría decir que 1, 2 y 3 son valores enteros constantes. Sin embargo, esto sería redundante, porque todos los valores son en realidad constantes y los propios valores nunca cambian (es decir, 1 siempre es 1 y 1 nunca será 2). Por otro lado, el valor asociado a una identidad puede cambiar (x puede ser igual a 1 ahora, pero podría ser igual a 2 más adelante).

ruby

Los lenguajes ensambladores se corresponden directamente con un lenguaje de máquina (véase más adelante), aunque puede que no haya un mapeo 1-1 entre una declaración individual y una instrucción individual, por lo que las instrucciones del código de máquina aparecen en una forma comprensible para los humanos. Los lenguajes ensambladores permiten a los programadores utilizar direcciones simbólicas, que el ensamblador convierte en direcciones absolutas o reubicables. La mayoría de los ensambladores también admiten macros y constantes simbólicas.

Un lenguaje de programación con restricciones es un lenguaje de programación declarativo en el que las relaciones entre las variables se expresan como restricciones. La ejecución se realiza intentando encontrar valores para las variables que satisfagan todas las restricciones declaradas.

Los lenguajes de paso de mensajes proporcionan construcciones de lenguaje para la concurrencia. El paradigma predominante para la concurrencia en los lenguajes convencionales como Java es la concurrencia de memoria compartida. Los lenguajes concurrentes que hacen uso del paso de mensajes se han inspirado generalmente en cálculos de procesos como los procesos secuenciales comunicantes (CSP) o el π-calculus.

Lenguajes de programacion funcional
Leer Más  Estadistica descriptiva ejercicios resueltos paso a paso
Scroll hacia arriba
Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad