Вывод отладочной информации

Clojure:
Вывод отладочной информации

Как это сделать:

В Clojure для вывода отладочной информации часто используются println, printf, pr, или prn. Вот как вы можете добавить в код отладочные печати:

(defn add-and-print [a b]
  (println "Сложение:" a "и" b) ; Выводит операцию
  (let [result (+ a b)]
    (println "Результат:" result)  ; Выводит результат
    result))                       ; Возвращает результат

(add-and-print 3 4)

Пример вывода:

Сложение: 3 и 4
Результат: 7

Или, для отладки значений в середине макроса потоковой передачи:

(require '[clojure.pprint :refer [pprint]])

(-> 3
    (+ 5)
    (pprint)             ; Выводит промежуточный результат
    (* 2))

Пример вывода:

8

Подробнее:

Отладка с помощью вывода имеет долгую историю, вероятно, старую как и само программирование. Это просто: вы вставляете операторы вывода там, где подозреваете наличие проблем, запускаете код и смотрите на вывод.

Функции Clojure для вывода отладочной информации очень похожи на те, что используются в других языках Lisp, но с обычным функциональным оттенком. println и prn отличаются тем, что последний пишет данные так, чтобы их мог прочитать интерпретатор Clojure. pprint (красивый вывод) из clojure.pprint можно использовать, когда вы хотите более приятный формат.

Специфичный для Clojure инструмент для отладки - tap>. Представленный в Clojure 1.10, он позволяет осуществлять неблокирующие “подключения” к выполняющемуся коду, без необходимости загромождать ваш код операторами вывода.

Для более крупных или сложных проектов стоит рассмотреть библиотеку логирования, как clojure.tools.logging или timbre.

Смотрите также: