Diferencia clave: programación funcional frente a programación imperativa
La diferencia clave 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 el estado cambiante y los datos mutables, mientras que la programación imperativa usa las declaraciones que cambian el estado del programa.
Un paradigma de programación proporciona un estilo de construcción de la estructura y los 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 puede influir en más paradigmas. En el paradigma orientado a objetos, el programa está estructurado usando objetos y los objetos pasan mensajes usando 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.
CONTENIDO
1. Descripción general y diferencia clave
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 lado a lado - Programación funcional versus programación imperativa en forma tabular
6. Resumen
¿Qué es la programación funcional?
La programación funcional se basa en las matemáticas. El principio clave detrás de la programación funcional es que todo el cálculo se considera una combinación de funciones matemáticas separadas. Una función matemática asigna entradas a salidas. Suponga que existe una función llamada f (x) = x * x. El valor de x 1 se asigna a la salida 1. El valor de x 2 se asigna a la salida 4. El valor de 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, se consideran los patrones. Los lenguajes de programación funcional Haskell, utilizan el método siguiente para encontrar la suma de los números.
La función de suma tiene valores enteros y el resultado también será un número entero. Se puede escribir como suma: [int] -> int. La suma se puede hacer siguiendo los siguientes patrones.
sum [n] = n, la suma de un número es el número mismo.
Si hay una lista de números, se puede escribir de la siguiente manera. La 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 la función. Es útil para comprender el comportamiento del programa. Un inconveniente de la programación funcional es que aprender la programación funcional es más difícil en comparación con la programación imperativa.
¿Qué es 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. Los 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 if, else, while, 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 suma a la suma y se asigna a la variable suma. En cada iteración, el valor de la suma se sigue sumando a la suma calculada previamente.
int suma = 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.
¿Cuál es la similitud entre la programación funcional y la programación imperativa?
Tanto la programación funcional como la programación imperativa son paradigmas de programación
¿Cuál es la diferencia entre programación funcional y programación imperativa?
Diferencia del medio del artículo antes de la mesa
Programación funcional versus imperativa |
|
La programación funcional es un paradigma de programación que considera la computación como la evaluación de funciones matemáticas y evita cambios de estado y 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 a funciones y funciones de orden superior. | La programación imperativa contiene if, else, while, 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. |
Atención | |
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. |
Resumen: programación funcional frente a programación imperativa
Un paradigma de programación proporciona un estilo de construcción de la estructura y los 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 el estado cambiante y los datos mutables, mientras que la programación imperativa usa las declaraciones que cambian el estado del programa.