Haskell:
Imprimiendo salida de depuración

Cómo Hacerlo:

Para imprimir algo en Haskell, usualmente usamos la función print o putStrLn.

main :: IO ()
main = do
  putStrLn "Este es un mensaje de depuración"
  print $ 1 + 2

Salida:

Este es un mensaje de depuración
3

Si quieres depurar dentro de una expresión, puedes usar Debug.Trace:

import Debug.Trace (trace)

sumaDebug :: Int -> Int -> Int
sumaDebug x y = trace ("sumando " ++ show x ++ " y " ++ show y) $ x + y

main :: IO ()
main = print $ sumaDebug 3 4

Salida:

sumando 3 y 4
7

Profundización

Historicamente, los programas de Haskell no imprimían directamente a la consola, debido a su naturaleza puramente funcional. Debug.Trace permite añadir impurezas para la depuración. Como alternativa, puedes usar herramientas más avanzadas como depuradores o profilers para hacer un análisis más detallado.

Haskell define operaciones de impresión en el módulo System.IO, y el uso de print es realmente un atajo para putStrLn . show. Debug.Trace es poderoso pero debería usarse con precaución, ya que puede romper la naturaleza perezosa y pura del código, llevando a resultados inesperados si no se retira después de la depuración.

Ver También