Retos computacionales.

February 7, 2009

Si hay algo para lo que soy aún más anárquico que para escribir en este blog, es a la hora de leer los feeds que con compulsiva obsesión he ido almacenando en mi lector de noticias. Esta tarde estaba leyendo debug_mode=on, después de tener un tanto abandonada esta página, y he encontrado una intesante referencia a las funciones "map" y "reduce" en python, y el aún más intersante enlace al Proyecto Euler (Project Euler).

Si el artículo sobre map y reduce os resulta interesante, os recomiendo este otro más extenso: http://mundogeek.net/archivos/2008/03/10/python-programacion-funcional/.

 

Por cierto, de mi coseña, la versión "funcional" en python de la resolución del primer problema del Proyecto Euler:

[SPOILER: SELECCIONAR LAS SIGUIENTES LÍNEAS PARA VERLO]

#Version estructurada "habitual"
def estructurada(max):
    tmp = 0
    for i in range(1, 1000):
        if i%3 == 0 or i%5 == 0:
            tmp += i
    return tmp

#Version funcional en una linea
funcional = lambda a: reduce(lambda x, y:x+y, filter(lambda x:x%3==0 or x%5==0, range(1, a)))

print estructurada(1000)
print funcional(1000)

[FIN DEL SPOILER]

Get free blog up and running in minutes with Blogsome
Theme designed by Viewfinder Design

Creative Commons License
This obra by Rubén Corral Jordá is licensed under a Creative Commons Reconocimiento-Compartir bajo la misma licencia 2.5 España License.