在clojure程序中,惯用(defn-main…)是什么意思?

在clojure程序中,惯用(defn-main…)是什么意思?,clojure,Clojure,我熟悉Java和Lisp中的包,但我在其他人的代码中看到的是一些明显的习惯用法,比如在(ns`foo)中调用入口点'-main',并使用反勾号作为名称空间名称,诸如此类。我在文档或教程中没有看到这些详细说明。是否有一些资源可以解释围绕结构化程序的这些约定 编辑: 我想我一定是从这个答案中找到了背景信息:,这是我在试图理解(defn-main…)时偶然发现的。鉴于作者,我认为这是最佳实践。然而,现在我翻阅了他引用的Clojure资料,我发现只使用了常规引用。我想很可能是打字错误 (相应地缩小了问题

我熟悉Java和Lisp中的包,但我在其他人的代码中看到的是一些明显的习惯用法,比如在(ns`foo)中调用入口点'-main',并使用反勾号作为名称空间名称,诸如此类。我在文档或教程中没有看到这些详细说明。是否有一些资源可以解释围绕结构化程序的这些约定

编辑:

我想我一定是从这个答案中找到了背景信息:,这是我在试图理解(defn-main…)时偶然发现的。鉴于作者,我认为这是最佳实践。然而,现在我翻阅了他引用的Clojure资料,我发现只使用了常规引用。我想很可能是打字错误


(相应地缩小了问题标题的范围)

gen类的默认值是使用-作为该类方法名称的前缀。这就是为什么-main是java-cp clojure.jar类的默认入口点


Backticks用当前名称空间限定它们的参数,因此(在ns'foo中)与(在ns'current namespace/foo中)是相同的,我不认为这是特别习惯用法。惯用的方法是将每个名称空间放在它自己的文件中,顶部有(ns…),并根据需要使用或需要它们。

我在这里看到了几个标题类似的问题,但它们不是我想要的。在ns中的反勾号是一个有趣的(而且似乎没有文档记录)技巧。为了澄清您的问题,您是指在单个源文件中组织定义,还是指在其包结构中组织所有文件?后者是明确的。我想我在这个网站的一篇帖子里看到了反勾号。我明天会设法找到它。我现在需要睡觉了。好的,我找到了gen类,谢谢你+1。至于名称空间,我想我可能看到了另一个结构,其中一个源文件定义(ns…),而其他一些文件使用(ns…)style@fizzer:是的,我很肯定那是个打字错误。虽然跨文件拆分名称空间可能很有用,但我仍然不认为它是惯用的。