在Clojure中发表评论;和之间的区别是什么;;?我看到我的文本编辑器对它们进行了不同的着色,所以我假设在理论上存在一些差异.
我也看到Marginalia以不同的方式对待他们:
; Stripped entirely
;; Appears in text section of marginalia
(defn foobar []
; Appears in code section of marginalia output
;; Again, appears in code section of marginalia output
6)
Run Code Online (Sandbox Code Playgroud) 在过去一年左右的时间里,我在Clojure讨论列表和其他关于Clojure代码记录工具的地方看到过各种各样的公告.这些包括像Marginalia这样的全面识字编程系统,以及用于创建"小片中的Clojure"(甚至是emacs组织模式)的书籍,以及更常规的Javadoc式解决方案,如Autodoc和Javadoc本身.据报道,可以与Clojure一起使用.一个谷歌搜索出现了各种其他,也许一些值得更多的关注,并且肯定有些只是用于生成文档的个人工具.我的问题是什么是最好的文档工具,根据您使用它们的经验,它们的比较优势和劣势是什么?到目前为止,我还没有使用任何文档工具,并且有兴趣尝试一个或多个.
documentation javadoc clojure literate-programming marginalia
Python文档测试将简单测试与源代码相关联(在Python中,它们在函数文档中). 更多信息和示例在这里.
Clojure有类似的东西吗?
我知道单元测试clojure.test,但寻找与源更紧密集成的东西(通常单元测试在不同的文件中;这里我想让测试"在里面" defn).
在我周围搜索我发现了这个,但它看起来非常不l(测试是在实际文本中,就像Python一样 - 当然,扩展的宏defn会更好吗?).
或者也许有其他方法可以解决一般问题,即我有一些测试(通常是简单的事情,演示函数的基本属性),这些测试将更好地包含在文档中(我使用的是边缘)而不是单独的单元测试文件.
更新 这是一个例子:我有一个函数来计算从像素矩形到图像中心的(曼哈顿)距离(以像素为单位).这听起来很简单,但是由于边缘上有奇数或偶数像素的图像的"中心"含义不同,或者你测量的块的哪个部分,这种情况很复杂.所以我不得不写一些测试来直接获得代码.现在我看看文档,如果文档包含那些测试,那将是最好的,因为它们比函数更好地解释函数的功能......