Buenas! Estaba siguiendo la clase 4, en la parte del practico 2 ejercicio 2, donde se define la función largo(L,N).
El profesor para testear la funcion definida realiza la siguiente llamada:
- findall(X,between(1,100,X),L), largo(L,N).
La cual devuelve, correctamente, una lista de los números del 1 al 100 y luego calcula su largo.
Sin embargo, sin querer ingresé la siguiente llamada:
- findall(X,between(1,100,X),N), largo(L,N). (Donde me equivoco y guardo la lista en N, en vez de en L).
Esta llamada pareciera no terminar nunca, entrando en un loop infinito. Mi consulta es: a que se puede deber ese loop? Se debe a que a la hora de intentar unificar la operación aritmética 'X + 1' con N, lo intenta verificar para cada elemento? Si fuese el caso, no deberia terminar con un error ya que N es una lista finita (y no muy larga como para que el orden de ejecución sea muy grande), o por otro lado con X = 100, que es elemento de N? O simplemente se debe a que espera algún otro input que capaz me faltaría ingresar para que termine correctamente?
Muchas gracias y saludos!