我怎样才能在Clojure中公开我的命名空间的一些函数?

时间:2015-02-01 21:34:38

标签: clojure functional-programming

我有以下代码:

(ns mylib-clojure.core)

(defn foo2 [x]
  (inc x))

(defn foo1 [x]
  (foo2 x))

函数foo2仅在foo1内部使用。假设我不想公开函数foo2,所以我为我的命名空间的用户提供了一个较小的API。是否可以将foo2设为“私人”?

1 个答案:

答案 0 :(得分:3)

您可以将foo2声明为"private"

(defn- foo2 [x] (inc x))

mylib-clojure.core之外无法看到。可以找到defn-的文档here。另一种选择是在foo1

中声明它
(defn foo1 [x]
  (let [foo2 (fn [x] (inc x))]
    (foo2 x)))