Clojure项目的地理布局与功能组织
1. 命名空间与 ns
宏
在Clojure中, ns
宏允许我们声明式地指定命名空间的名称、顶级文档,以及为了成功加载和正常工作所需的引用、使用和导入内容。它是对一些底层函数的简单封装。例如,下面这堆实用函数调用:
(in-ns 'examples.ns)
(clojure.core/refer 'clojure.core :exclude '[next replace remove])
(require '(clojure [string :as string]
[set :as set])
'[clojure.java.shell :as sh])
(use '(clojure zip xml))
(import 'java.util.Date
'java.text.SimpleDateFormat
'(java.util.concurrent Executors
LinkedBlockingQueue))
等同于以下 ns
声明:
(ns examples.ns
(:refer-clojure :exclude [next replace remove])
(:require (clojure [string :as stri