相关疑难解决方法(0)

为Elocs/Swank/Paredit提供Clojure的温和教程

我正在转向Emacs来处理Clojure/Lisp.为了能够执行以下操作,我需要在Emacs上设置的所有信息是什么?

  1. 自动匹配/生成相应的关闭括号
  2. autoindent Lisp/Clojure风格,而不是C++/Java风格
  3. 语法突出显示
  4. 调用REPL
  5. 能够将文件中的一部分代码加载到REPL中并进行评估.

如果我在Emacs上进行设置之后还可以获得命令列表来获取这些内容,那将是很棒的.

emacs clojure

87
推荐指数
3
解决办法
2万
查看次数

在Clojure中使用命名空间的常见约定是什么?

我在Clojure中找到使用命名空间的好建议和常用做法时遇到了麻烦.我意识到命名空间与Java包不同,所以我试图梳理Clojure中的约定,这似乎很难确定.

我想我非常清楚如何将函数分成clj文件,甚至大致如何将这些文件组织到目录中.但除此之外,我无法为我的开发环境找到机制.一些相互关联的问题:

  1. 对于Clojure命名空间,我是否使用与通常用于Java包的相同的唯一性约定?[即backwards-company-domain.project.subsystem]
  2. 我应该将文件保存在与我的命名空间匹配的目录结构中吗?[ala Java]
  3. 如果我有多个名称空间,是否需要将所有代码编译到jar中并将其添加到我的类路径中以使其可访问?
  4. 每个命名空间应该编译成一个jar吗?或者我应该创建一个包含来自许多名称空间的clj代码的jar?

谢谢...

namespaces conventions clojure project-organization

50
推荐指数
2
解决办法
6554
查看次数

为什么clojure会将名称中的破折号转换为文件系统中的下划线?

我一直在使用clojure几个月而且我真的不明白的一件事是为什么命名空间名称中的破折号必须在文件系统中表示为下划线.任何人都可以向我解释这一点,是否有可能在文件名中使用破折号?

clojure

27
推荐指数
1
解决办法
4491
查看次数

用于构造Clojure源代码的惯用法

我对人们如何构建他们的Clojure源代码感兴趣.

习惯于Java,我非常熟悉每个源代码文件一个类的范例,将所有数据和方法定义与适当的注释和注释等捆绑在一起.

然而,Clojure提供了更多的灵活性,我不确定我应该如何构建我的项目(可能最终成为一个中等大小的应用程序,可能是5,000行,有三个或四个不同的子系统)

特别是我正在努力:

  • 我应该使用什么准则来确定代码是否应该在单个命名空间中而不是分隔到不同的命名空间中?
  • 每个协议/数据类型是否应该拥有自己的命名空间+源文件以及相关的一组函数?
  • 我应该何时需要使用其他名称空间?

clojure code-structure

11
推荐指数
1
解决办法
583
查看次数