I1M2016: Uso de las librerías HLint y Trace

En la segunda parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se ha ecplicado el uso de las libretías HLint y Trace.

La librería HLint se instala ejecutando en una consola

Para explicar el uso de HLint se considera el programa ej1.hs en el que está definida la suma de una lista de números y cuyo contenido es

para analizarlo, se ejecuta en una consola

Siguiendo la sugerencia, cambiamos el contenido del programa ej1.hs y queda

Lo volvemos a analizar con HLint

Con lo que finalmente el programa queda

y al analizarlo

El segundo ejemplo que se explicó es en un programa con acumulador. El programa está en el fichero ej2.hs cuyo contenido es

Lo analizamos con HLint

Al incorporar las 2 sugerencias a ej2.hs el programa queda como sigue

Lo volvemos a analizar con HLint

a incorporar la sugerencia a ej2.hs cuyo contenido queda como sigue

Lo vovemos a analizar con HLint

Aunque no ha dado ninguna sugerencia, podemos eliminar la dunción auxiliar aux quedando el contenido de ej2.hs como sigue

Lo analizamos con HLint

Con lo que el program final se reduce a

Para explicar la librería Trace volvemos a considerar la 2ª definición de la suma de los elemntos de una lista; es decir, la versión inicial del ej2.hs

Para usar la librería Trace hauy que importarla añadiendo al principio del fichero la línea

Como la función recursiva es aux, para seguir su traza le añadimos como primera ecuación la siguiente.

Con estos cambios, el contenido del fichero es

Al evaluarlo

se observa la traza. La cadena de la traza se puede construir con la función printf de la librería Printf como se muestra a continuación

en donde se ha ajustado el ancho de la la columna del acumulador a 2 (mediante %2d) como se ve en la evaluación