haskell warnings ghci

haskell - Advertencias sobre la carga desde el indicador GHCi



warnings (1)

En ghci, entra

:set -Wall

y si desea desactivar todas las advertencias, puede hacer

:set -w

(Tenga en cuenta que las mayúsculas y las mayúsculas serán las advertencias normales).

En la guía del usuario dice que podemos usar cualquier opción de la línea de comandos de ghc en el símbolo del sistema siempre que aparezcan como dinámicas, y podemos ver en la referencia de la bandera que todas las configuraciones de las advertencias son dinámicas.

Aquí hay una sesión de ejemplo, usando la "implementación incorrecta" anterior:

Prelude> :l temp.hs [1 of 1] Compiling Main ( temp.hs, interpreted ) Ok, modules loaded: Main. (0.11 secs, 6443184 bytes) *Main> :set -Wall *Main> :l temp.hs [1 of 1] Compiling Main ( temp.hs, interpreted ) temp.hs:3:1: Warning: Pattern match(es) are non-exhaustive In an equation for `fac'': Patterns not matched: _ Ok, modules loaded: Main. (0.14 secs, 6442800 bytes)

Al usar GHCi, me gustaría saber cómo puedo usar la opción -Wall cuando (re) se carga desde el indicador.

Por ejemplo, en la sección 3.3 de Consejos de programación de Haskell El ejemplo que se muestra con los guardias es el siguiente:

-- Bad implementation: fac :: Integer -> Integer fac n | n == 0 = 1 | n /= 0 = n * fac (n-1) -- Slightly improved implementation: fac :: Integer -> Integer fac n | n == 0 = 1 | otherwise = n * fac (n-1)

Dice que "el primer problema es que es casi imposible para el compilador verificar si los guardias de este tipo son exhaustivos, ya que las condiciones de los guardias pueden ser arbitrariamente complejas (el GHC le avisará si usa la opción" Mover ")".

Sé que puedo escribir ghci -Wall some_file.hs desde la línea de comandos, pero una vez en el indicador, no estoy seguro de cómo comprobar si hay advertencias si deseo volver a cargarlas.

¡Parece que no puedo encontrar la respuesta después de intentar buscar en Google esto!

¡Gracias por adelantado!