/* 
 * Escribe una lista con sublistas de forma sangrada
 * a partir de la columna indicada.
 *
 * Las sublistas tienen una sangría de 3 espacios.
 *
 * Se usa la negación con not
 */

/* El argumento no es una lista */

escribir_lista(X,Columna):-
			not(es_lista(X)),
			tab(Columna),
			write(X),
			nl.

/* El argumento es una lista con cabeza y cola */

escribir_lista([Cabeza|Cola],Columna):- 			
			Lugar is Columna + 3, 
			escribir_lista(Cabeza,Lugar),
			escribir_sublista(Cola,Lugar).


/* Si la sublista es vacía, no escribe nada */
escribir_sublista([],_).

/* Si la sublista no es vacía, se escribe la cabeza y la cola */
		
escribir_sublista([Cabeza|Cola],Columna):- 		
			escribir_lista(Cabeza,Columna),
			escribir_sublista(Cola,Columna).

			
/* Se comprueba si el argumento es una lista */

/* Es la lista vacía */
es_lista([]).

/* Es una lista que posee cabeza y cola */
es_lista([_|Cola]):-es_lista(Cola).

