(rontolisp) docs
← リファレンス

名前空間

名前空間はそれぞれ自分の var を持ちます。定義は現在の名前空間に属し、名前はまずその名前空間自身の var に、次に refer された var に解決され、alias/name や full.name/name は別の名前空間の public な var を指します。名前空間フォームはその名前空間へ切り替えて節を接続します::as は別名、:refer/:use は非修飾名、:import は interop 用クラス名を登録し、(:refer-clojure :only/:exclude ...) は見える核を狭めます。名前に付いたメタデータ(^{...}・#^{...})、ドキュメント文字列、属性マップは読み飛ばします。clojure.string、clojure.set、clojure.java.io(reader のみ)、clojure.test は組み込みで、それ以外はプログラムが ns で宣言した名前空間か、ソースパス上のファイルから 1 度だけロードされる名前空間です(セマンティクス)。どのルートにもない名前空間はエラーです。

NameExampleResult
ns(do (ns demo (:require [clojure.string :as s])) (s/upper-case "hi"))HI
require(do (require '[clojure.string :as s]) (s/join "," ["a"]))a
use(do (use '[clojure.string :only [upper-case]]) (upper-case "hi"))HI
import(do (import java.util.Date) nil)nil
in-ns(do (in-ns 'demo) nil)nil
the-ns(str (the-ns 'user))"user"
find-ns(find-ns 'no-such)nil
ns-name(ns-name *ns*)user