El tipo de datos

Python como varios otros lenguajes modernos como ser ruby, scala, etc., tiene
influencia del paradigma funcional. No vamos acá a enseñar el paradigma
funcional, pero sí sucede que varias de estas ideas están relacionadas con
la manipulación de estructuras de datos contenedoras, como las listas,
diccionarios, sets, etc.
Entonces en esta sección vamos a ver algunas ideas que, luego de entenderlas
aplicadas sobre las colecciones, podremos utilizarlas luego para modelar cualquier
problema. Y tendremos un conjunto de "herramientas" para pensar soluciones a
problemas.
En general estas ideas llevan a combinar el paradigma estructurado y objetos con
la simplicidad y legibilidad del paradigma funcional y declarativo.
Funciones
En general las funciones que veníamos viendo hasta el momento se
denominan funciones de primer nivel. Porque existe la idea de funciones de orden
superior. Que se refiere a funciones que:
Reciben otra función como uno o varios parámetro/s.
O bien retornan otra función como resultado.
Y claro, se llaman de orden superior porque operan sobre funciones. El dominio o
la imagen de estas funciones son funciones.
Veamos un ejemplo. Empezamos por uno simple, para no decir bastante "pavo",
porque no es justamente para lo que uno usaría estas funciones realmente.
Supongamos que tenemos una función que sirve para "saludar". Símplemente
hace un print.
Intervalos
Funciones devuelven siempre el mismo valor
Los lenguajes funcionales puros tienen la propiedad de transparencia referencial
Como consecuencia, en programación funcional, una función siempre devuelve el
mismo valor cuando se le llama con los mismos parámetros
Las funciones no modifican ningún estado, no acceden a ninguna variable ni objeto
global y modifican su valor
Diferencia entre declaración y modificación de variables
En programación funcional pura una vez declarada una variable no se puede modificar
su valor
En algunos lenguajes de programación (como Scala) este concepto se refuerza
definiendo la variable como inmutable (con la directiva val).
En programación imperativa es habitual modificar el valor de una variable en distintos
pasos de ejecución
Comentarios
Publicar un comentario