更改为使用排除的命名空间

kon*_*onr 1 clojure

在REPL中,是否有一种方法可以更改为名称空间,在该名称空间中排除核心功能,例如

(ns bla (:refer-clojure :exclude [==]))
Run Code Online (Sandbox Code Playgroud)

无需重新输入排除,如下所示?

user> (ns bla)
IllegalStateException == already refers to: #'clojure.core.logic/== in namespace: bla  clojure.lang.Namespace.warnOrFailOnReplace (Namespace.java:88)
user> (ns bla (:refer-clojure :exclude [==]))
nil
bla>
Run Code Online (Sandbox Code Playgroud)

Nat*_*vis 5

你想要的in-ns. ns主要用于创建新的命名空间,而in-ns主要用于切换到现有的命名空间.从技术上讲,如果它尚不存在,它们都将创建一个新的命名空间,但in-ns如果它已经存在,则不会尝试更改命名空间.