Retos computacionales.
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]

