惯用语(defn -main ...)在clojure程序中意味着什么?

fiz*_*zer 11 clojure

我熟悉Java和Lisp的软件包,但是我在其他人的代码中看到的是一些明显的习惯用法,例如调用入口点'-main'并在命名空间名称中使用反引号(in-ns`foo ),那种事.我没有在文档或教程中的任何地方看到这些拼写.是否有一些资源可以解释围绕结构化程序的这些约定?

编辑:

我想我必须从这个答案中找到反击的东西:在多个文件上拆分Clojure名称空间,我在试图理解(defn -main ...)时偶然发现这个问题.鉴于作者,我把它作为最佳实践.然而,现在我引用他引用的Clojure来源,我发现只使用常规引用.我猜这很可能是一个错字.

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

Joo*_*aat 6

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

反引号使用当前命名空间限定他们的参数,因此(in-ns`foo)与(in-ns'current-namespace/foo)相同,我认为这不是特别惯用的.惯用的方法是将每个命名空间放在自己的文件中,并在顶部放置(ns ...),并根据需要使用或要求它们.