第5行不能设置断点,其中包含[x]
.
IntelliJ 不会让我这样做。我使用了不同的插件,例如拉克洛胡尔 https://github.com/JetBrains/la-clojure/ and Cursive https://cursiveclojure.com/。两者都停在 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])
首先,按照惯例,所有尾随括号都在同一行,如下所示:
(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 和单元测试进行调试。使用断点并不是那么可靠。
如果你真的想要类似于设置断点的东西,你可以尝试使用这个调试宏 https://coderwall.com/p/xayyvq(不是我的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)