El diferencia clave entre la programación funcional y la programación imperativa es que el La programación funcional considera los cálculos como funciones matemáticas y evita cambiar los datos estatales y mutables, mientras que la programación imperativa utiliza las declaraciones que cambian el estado de los programas.
Un paradigma de programación proporciona un estilo de construcción de la estructura y elementos de un programa de computadora. Los paradigmas de programación ayudan a clasificar los lenguajes de programación en función de sus características. Un lenguaje de programación podría influir en más paradigmas. En el paradigma orientado a objetos, el programa se estructura utilizando objetos, y los objetos pasan mensajes utilizando métodos. La programación lógica puede expresar el cálculo exclusivamente en términos de lógica matemática. Otros dos paradigmas de programación son la programación funcional y la programación imperativa. La programación funcional permite expresar cálculos como evaluación de funciones matemáticas. La programación imperativa proporciona declaraciones que cambian explícitamente el estado de la memoria. Este artículo analiza la diferencia entre la programación funcional y la programación imperativa.
1. Descripción general y diferencia de claves
2. ¿Qué es la programación funcional?
3. ¿Qué es la programación imperativa?
4. Similitudes entre la programación funcional y la programación imperativa
5. Comparación de lado a lado: programación funcional versus programación imperativa en forma tabular
6. Resumen
La programación funcional se basa en matemáticas. El principio clave detrás de la programación funcional es que todo el cálculo se considera como una combinación de funciones matemáticas separadas. Una función matemática mapea las entradas a las salidas. Suponga que hay una función llamada f (x) = x*x. El valor x 1 se asigna a la salida 1. El valor x 2 se asigna a la salida 4. El valor x 3 se asigna a la salida 9 y así sucesivamente.
Figura 01: Ejemplo de lenguaje de programación funcional - Haskell
En la programación funcional, los patrones se consideran. Los lenguajes de programación funcional Haskell, utiliza el siguiente método para encontrar la suma de los números.
La función de suma tiene valores enteros, y el resultado también será un entero. Se puede escribir como suma: [int] -> int. La suma se puede hacer siguiendo los patrones a continuación.
suma [n] = n, la suma de un número es el número en sí.
Si hay una lista de números, se puede escribir de la siguiente manera. El n representa el primer número, y ns representa los otros números
suma (n, ns) = n + suma ns.
Los patrones anteriores se pueden aplicar para encontrar la suma de tres números que son 3,4,5.
3 + suma [4,5]
3 + (4 + suma [5])
3+ 4 + 5 = 12
Se dice que una función o una expresión tiene efectos secundarios si modifica algún estado fuera de su alcance o tiene una interacción observable con sus funciones de llamada además del valor de retorno. La programación funcional minimiza estos efectos secundarios. Los cambios de estado no dependen de las entradas de función. Es útil cuando se comprende el comportamiento del programa. Un inconveniente de la programación funcional es que el aprendizaje de la programación funcional es más difícil en comparación con la programación imperativa.
La programación imperativa es un paradigma de programación que utiliza las declaraciones que cambian el estado de un programa. Se centra en describir cómo funciona un programa. Lenguajes de programación como Java, C y C# son lenguajes de programación imperativos. Proporciona un procedimiento paso a paso sobre qué hacer. Los lenguajes de programación imperativos contienen estructuras como si, de lo contrario, mientras, para bucles, clases, objetos y funciones.
Figura 02: Ejemplo de lenguaje de programación imperativo - Java
La suma de diez números se puede encontrar en Java de la siguiente manera. En cada iteración, el valor i se agrega a la suma y se asigna a la variable de suma. En cada iteración, el valor de la suma sigue agregando a la suma previamente calculada.
int sum = 0;
para (int i = 0; i< =10; i++)
suma = suma + i;
La programación imperativa es fácil de aprender, comprender y depurar. Es fácil encontrar el estado del programa debido al uso de variables de estado. Algunos inconvenientes son que puede hacer que el código sea largo y también puede minimizar la escalabilidad.
Programación funcional vs imperativa | |
La programación funcional es un paradigma de programación que considera el cálculo como la evaluación de las funciones matemáticas y evita cambiar el estado y los datos mutables. | La programación imperativa es un paradigma de programación que utiliza declaraciones, que cambian el estado de un programa. |
Estructuras | |
La programación funcional contiene llamadas de función y funciones de orden superior. | La programación imperativa contiene si, de lo contrario, mientras, para bucles, funciones, clases y objetos. |
Lenguajes de programación | |
Scala, Haskell y Lisp son lenguajes de programación funcionales. | C, C ++, Java son lenguajes de programación imperativos. |
Enfocar | |
La programación funcional se centra en el resultado final. | La programación imperativa se centra en describir cómo funciona un programa. |
Sencillez | |
La programación funcional es difícil. | La programación imperativa es más fácil. |
Un paradigma de programación proporciona un estilo de construcción de la estructura y elementos de un programa de computadora. La programación funcional y la programación imperativa son dos de ellos. La diferencia entre la programación funcional y la programación imperativa es que la programación funcional considera los cálculos como funciones matemáticas y evita cambiar los datos de estado y mutables, mientras que la programación imperativa utiliza las declaraciones que cambian el estado de los programas.
1."Programación imperativa."Wikipedia, Fundación Wikimedia, 28 de mar. 2018. Disponible aquí
2."Programación funcional."Wikipedia, Fundación Wikimedia, 28 de mar. 2018. Disponible aquí
3.Computerphile. YouTube, YouTube, 30 de agosto. 2013. Disponible aquí
1.'Haskell Logo'by Haskell1965 - Trabajo propio, (CC By -SA 3.0) a través de Commons Wikimedia
2.'14485179234' por capturas de pantalla de Linux (CC por 2.0) a través de Flickr