как н.м. указывает, что есть Debug.Trace
, но написать что-то самому легко. Однако я настоятельно рекомендую использовать это только для отладки и удалить его для реального кода. Вот пример:
import System.IO.Unsafe
output a b = seq (unsafePerformIO (print a)) b
(output "test" 23) * 25
-- "test"
-- 527
Здесь output
принимает аргумент для печати и возвращаемое значение, которое ведет себя как const
, только с побочным эффектом. seq
необходим для принудительной оценки print
, иначе лень не даст ничего напечатать.