Saltar al contenido principal

Errores y Advertencias

Al cargar un programa en el intérprete se realiza un chequeo de errores. En el caso de que haya alguno, se despliega el mensaje correspondiente y la línea/columna del texto en el que ocurrió, y el programa no se ejecuta. Todos los textos de los mensajes son en español y refieren a errores conceptuales.

Supongamos que tenemos la función areaTria de la Figura 2 definida en un archivo llamado 'Ejemplos', y definimos una función 'areaRara' así

areaRara :: R -> R
areaRara(x) = areaTria(x)

Al cargar ’Ejemplos’ en el intérprete se produce el error:

Error: {archivo: Ejemplos linea: 53 columna: 25}
Se esperan elementos de (R X R)
pero se encontro R.

También hay advertencias, que no impiden la ejecución del programa pero cuyo origen debe ser revisado porque puede ser fuente de errores futuros. O sea que las advertencias informan posibles problemas que en esa etapa no se han podido todavía detectar como errores. Si en el archivo 'Ejemplos' definimos la función

mismo :: R -> Rno0
mismo(x) = x

Se despliega una advertencia al cargarlo en el intérprete:

Advertencia: {archivo: Ejemplos linea: 3 columna: 1}
Conjunto Rno0 requerido es subconjunto del resultante.
Por lo que existe la posibilidad de que su valor quede
fuera del conjunto.

y un error al aplicarla a 0, como se muestra a continuación:

mismo(0)

Error: {archivo: Ejemplos linea: 3 columna: 12}
Valor 0 no pertenece al conjunto Rno0
porque no se cumple: [0 /= 0].