0votos

Árbol de Navidad en Python

por josejuan hace 6 años

Supongo que para conseguir recursión perezosa en Python habría que definir un generador, una solución muy elavorada comparada con (eg) Hakell. Ésta es la versión más "aproximada" sin usar lazy.

Escribe una función que dado un entero N, devuelve un árbol de asteriscos de N líneas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# si admitiera recursión lazy ¡ojo que se cuelga! 
def bosque(x): [x]+bosque([' '+z for z in x] + ["*"*(1+2*len(x))]) 
 
# "apaño" para salir de la recursión 
def bosque(x, n): 
    if n == 1: 
        return [x] 
    return [x]+bosque([' '+z for z in x] + ["*"*(1+2*len(x))], n-1) 
 
# para generar un bosque de N árboles sería 
bosque(["*"], N) 
 
# Haskell 1, Python 0 
:P 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.