Главная » Haskell » Пакет модулей Debug

0

Пакет  модулей Debug содержит единственный стандартный  модуль  Trace (в конкретных поставках трансляторов языка Haskell  могут иметься дополнительные модули), который используется для нужд отлова ошибок и мониторинга процесса исполнения функциональных программ.

9.1.    Модуль Trace

Единственный стандартный модуль пакета Debug (в  поставках  некоторых трансляторов, в частности GHC, пакет может быть расширен дополнительными модулями), предназначенный для использования в целях отладки разрабатываемых программ. Использование:

import  Debug.Trace

В этом модуле описаны две функции, которые используются для трассировки.

Функция: putTraceMsg

Описание: выводит заданное сообщение в рамках монады IO. Вывод осуществляется в стандартный поток ошибок stderr. Однако если функция вызывается из графического приложения, вывод может осуществиться в соответствии с API графической оболочки.

Определение:

putTraceMsg :: String  ->  IO ()

putTraceMsg msg = do  hPutStrLn  stderr msg

Функция: trace

Описание: при вызове выводит на экран (в консоль  ошибок)  заданную строку с сообщением об ошибке, после чего запускает второй аргумент и возвращает его результат в качестве своего результата. Эта функция не является детерминированной, а потому должна использоваться только в целях отладки или мониторинга исполнения.

Определение:

trace ::  String ->  a  ->  a

trace string expr  = unsafePerformIO   $ do  putTraceMsg  string return  expr

Источник: Душкин Р. В., Справочник по языку Haskell. М.: ДМК Пресс, 2008. 544 с., ил.

По теме:

  • Комментарии