Entonces, ¿qué es la programación funcional?
La programación funcional tiene que ver con la separación de preocupaciones, ¿qué programación orientada a objetos hace
también, verdad?
Se trata de empaquetar nuestro código en partes separadas para que todo esté bien organizado en cada parte de nuestro
código.
Y cada parte está organizada de una manera que tiene sentido en función de la funcionalidad.
Entonces, cuando decimos separación de preocupaciones, nos referimos a que cada parte se preocupa por uno mismo con una cosa en la que es
bueno.
Recordamos en nuestra sección de programación orientada a objetos cómo teníamos clases para dividir atributos
y métodos de, digamos, una clase de asistente y una clase de arquero.
Y la programación funcional tiene esta idea también de separar preocupaciones, pero también separan datos y
funciones.
Así es como un programador funcional ve el mundo.
En lugar de combinar métodos y atributos, los separamos porque son dos cosas separadas.
Hay datos y estos datos se interactúan y se actúa sobre ellos.
Pero no vamos a combinar datos y funciones como una sola pieza y un objeto como vimos con la programación orientada
a objetos.
Ahora bien, no existe una definición correcta de lo que es y no es funcional.
Pero, en general, los lenguajes funcionales hacen hincapié en la simplicidad en lo que respecta a los datos y las
funciones porque en la mayoría de los paradigmas de programación funcional, no tenemos esta idea de clases y objetos.
En cambio, las funciones operan en estructuras de datos bien definidas como listas y diccionarios que vimos, en lugar
de pertenecer esa estructura de datos a un objeto.
Pero al final del día, el objetivo de un paradigma de programación funcional es el mismo que el paradigma orientado a
objetos.
Es la idea de hacer nuestro código limpio y comprensible.
Fácil de extender.
Es decir, podemos hacer crecer nuestro código y hacerlo cada vez mejor y hacer que otros vengan y amplíen nuestro código.
Es más fácil de mantener.
Mantiene nuestro código seco para que no nos estemos repitiendo, además de mantener nuestra memoria de código eficiente
porque no estamos almacenando información por todas partes.
Ahora, cuando llegamos a la programación funcional, tenemos un pilar muy importante y, a diferencia de la programación
orientada a objetos donde teníamos esos cuatro pilares de encapsulación, abstracción, herencia y polimorfismo, si quieres
desglosar las cosas en la programación funcional, todo se reduce a este concepto de funciones
puras.
Y esto es algo que exploraremos en los próximos dos videos.
Pero la idea aquí es que existe una separación entre los datos de un programa y el comportamiento de un programa.
Así que descubramos más sobre las funciones puras.
¿Qué quieren decir?
¿Qué son?