2013-11-26 7 views
1

사용하는 네임 스페이스에 대한 변경, 핵심 기능을 제외 그 정의 네임 스페이스로 전환하는 방법은 다음과 같은 배제을 다시 입력 할 필요없이REPL에서 제외

(ns bla (:refer-clojure :exclude [==])) 

같이 있는가?

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> 

답변

5

당신은 in-ns을 원합니다. ns은 주로 새 네임 스페이스를 만드는 데 사용되며 in-ns은 주로 기존 네임 스페이스로 전환하는 데 사용됩니다. 기술적으로 이미 존재하지 않는 두 가지 모두 새로운 네임 스페이스를 만들지 만, 이미 존재하는 경우 in-ns은 네임 스페이스를 변경하려고 시도하지 않습니다.

+0

네임 스페이스가 아직로드되어 있지 않은 경우 그는'(doto 'in-ns 필요') 할 수 있습니다. – amalloy

3

나는 당신이 이미 물론

C-c M-n. 

가 먼저 필요 바인딩이 키를 사용하여 현재 버퍼의 네임 스페이스에 REPL 버퍼의 네임 스페이스를 전환 할 수 있습니다 이맥스에서와 CIDER를 사용하는 것을 알고 가정 명시 적 네임 스페이스가 있고 정의가있는 clj 파일

관련 문제