Clojure REPL - 有没有办法查看在REPL会话中定义了哪些变量(因此可用)?

3
如果我一直在Clojure REPL中玩耍(可能一直在尝试(assoc)、(seq)或(reduce)等操作,创建了一些临时的map),但想要打印出该会话中定义的变量列表,有没有办法可以做到这一点?类似于 (println def) 或者其他什么东西?
2个回答

6

如果你在user名称空间中,你可以使用(dir user)。或者任何其他你感兴趣的命名空间。这将展示出所有已定义的def事物。如果它不在那里(通常会自动在REPL中使用),你可以在clojure.repl/dir找到它。


6

ns-interns可以让你接近目标。

user=> (def x 1)
#'user/x
user=> (def y 2)
#'user/y
user=> (ns-interns *ns*)
{x #'user/x, y #'user/y}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接