Как отладить файл Clojure в IntelliJ?
В строке 5 нельзя установить точку останова, которая содержит [x]
,
IntelliJ не позволит мне сделать это. Я использовал разные плагины, такие как La Clojure и Cursive. Оба останавливаются в строке 3, а не в строке 5.
Итак, как люди вступают в код в Clojure?
Есть ли какие-либо предложения по синтаксису или, возможно, инструмент, чтобы помочь с?
(defn flattenlist
([x & more]
(concat (if (vector? x)
(apply flattenlist x)
[x]
)
(if (= more nil)
nil
(apply flattenlist more))))
)
(flattenlist [[1 [[2]]] 3 [4 5] 6])
1 ответ
Во-первых, по соглашению, все завершающие скобки находятся в одной строке, примерно так:
(defn flattenlist
([x & more]
(println x)
(concat (if (vector? x)
(apply flattenlist x)
[x])
(if (= more nil)
nil
(apply flattenlist more)))))
(flattenlist [[1 [[2]]] 3 [4 5] 6])
Во-вторых, когда вы используете составные функции, легко вставить println и запустить / протестировать только эту функцию, потому что она прозрачна по ссылкам. Я всего лишь любитель Clojure, но я обычно отлаживаю с помощью printlns и юнит-тестов. Использование точек останова не так уж и надежно.
Если вы действительно хотите что-то похожее на установку точки останова, вы можете попробовать использовать этот макрос отладки (не мой).