Siestemas De Control

Páginas: 8 (1754 palabras) Publicado: 23 de enero de 2013
La programación funcional es un paradigma en el que la programación se basa casi en su totalidad en funciones, entendiendo el concepto de función según su definición matemática, y no como los simples subprogramas de los lenguajes imperativos que hemos visto hasta ahora.
En los lenguajes funcionales puros un programa consiste exclusivamente en la aplicación de distintas funciones a un valor deentrada para obtener un valor de salida.
Python, sin ser un lenguaje puramente funcional incluye varias características tomadas de los lenguajes funcionales como son las funciones de orden superior o las funciones lambda (funciones anónimas).
Funciones de orden superior
El concepto de funciones de orden superior se refiere al uso de funciones como si de un valor cualquiera se tratara,posibilitando el pasar funciones como parámetros de otras funciones o devolver funciones como valor de retorno.
Esto es posible porque, como hemos insistido en diversas ocasiones, en Python todo son objetos. Y las funciones no son una excepción.
Veamos un pequeño ejemplo
def saludar(lang):
def saludar_es():
print "Hola"def saludar_en():
print "Hi"

def saludar_fr():
print "Salut"

lang_func = {"es": saludar_es,
"en": saludar_en,
"fr": saludar_fr}
return lang_func[lang]f = saludar("es")
f()
Como podemos observar lo primero que hacemos en nuestro pequeño programa es llamar a la función saludar con un parámetro "es". En la función saludar se definen varias funciones: saludar_es, saludar_en y saludar_fr y a continuación se crea un diccionario que tiene como claves cadenas de texto que identifican a cada lenguaje, y como valoreslas funciones. El valor de retorno de la función es una de estas funciones. La función a devolver viene determinada por el valor del parámetro lang que se pasó como argumento de saludar.
Como el valor de retorno de saludar es una función, como hemos visto, esto quiere decir que f es una variable que contiene una función. Podemos entonces llamar a la función a la que se refiere f de la forma en quellamaríamos a cualquier otra función, añadiendo unos paréntesis y, de forma opcional, una serie de parámetros entre los paréntesis.
Esto se podría acortar, ya que no es necesario almacenar la función que nos pasan como valor de retorno en una variable para poder llamarla:
>>> saludar(“en”)()
Hi
>>> saludar(“fr”)()
Salut
En este caso el primer par de paréntesis indica losparámetros de la función saludar, y el segundo par, los de la función devuelta por saludar.
Iteraciones de orden superior sobre listas
Una de las cosas más interesantes que podemos hacer con nuestras funciones de orden superior es pasarlas como argumentos de las funciones map, filter y reduce. Estas funciones nos permiten sustituir los bucles típicos de los lenguajes imperativos medianteconstrucciones equivalentes.
map(function, sequence[, sequence, ...])
La función map aplica una función a cada elemento de una secuencia y devuelve una lista con el resultado de aplicar la función a cada elemento. Si se pasan como parámetros n secuencias, la función tendrá que aceptar n argumentos. Si alguna de las secuencias es más pequeña que las demás, el valor que le llega a la función function paraposiciones mayores que el tamaño de dicha secuencia será None.
A continuación podemos ver un ejemplo en el que se utiliza map para elevar al cuadrado todos los elementos de una lista:
def cuadrado(n):
return n ** 2

l = [1, 2, 3]
l2 = map(cuadrado, l)
filter(function, sequence)
La funcion filter verifica...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Vilfredo pareto y su siestema social
  • Siestema de informacion gerencial
  • siestema dual
  • control control control
  • Siestema De Informacion
  • Teoria de los siestemas
  • Control
  • Control

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS