我想看看如果符号已经被“高清”版,但我看不到任何IFDEF语法在clojure中,如何测试符号是否已被定义?
19
A
回答
24
user> (resolve 'foo)
nil
user> (def foo 3)
#'user/foo
user> (resolve 'foo)
#'user/foo
6
resolve
或ns-resolve
可能你在找什么:
user> (def a 1)
#'user/a
user> (def b)
#'user/b
user> (resolve 'a)
#'user/a
user> (resolve 'b)
#'user/b
user> (resolve 'c)
nil
取得布林:
user> (boolean (resolve 'b))
true
编辑:每MayDaniel的评论,这不正是你问什么,但它会得到你。下面是bounded?
实现(可能不是最好的名字):
(defn bounded? [sym]
(if-let [v (resolve sym)]
(bound? v)
false))
user> (map bounded? ['a 'b 'c])
(true false false)
2
可以使用发现-VAR这个
(bound? (find-var 'user/y))
+0
如果'y'在'user'中被绑定,返回空指针异常,因为'find- var'在这种情况下返回'nil'。 – Mars 2016-09-20 23:20:42
相关问题
- 1. 在setup.py中,如何测试PyCapsule_New是否被定义?
- 2. Puppet - 测试包是否已经定义?
- 3. 如何使用已定义的参数(toHaveBeenCalledWith)测试函数是否被调用
- 4. 如何测试\符号(反斜杠)是否在字符串中?
- 5. 在python中,如何测试路径是否是符号链接?
- 6. 在Clojure中定义丢失的符号
- 7. 测试名称是否已被使用
- 8. 测试JavaScript是否已被修改
- 9. 测试按钮是否已被点击
- 10. 测试UITableViewCell是否已被删除
- 11. 测试连接是否已被调用
- 12. 测试宏内是否定义了预处理器符号
- 13. 删除Clojure REPL中定义的测试
- 14. 如何在我的.vimrc中检测“&t_Co”是否被“定义”?
- 15. 如何检测Bash中符号链接是否被破坏?
- 16. 如何在运行时检测符号是否被剥离?
- 17. Clojure:从符号列表中定义multimethods?
- 18. 如何测试一个文件是否已被pickle创建?
- 19. 如何测试UIControlEvents是否已被触发
- 20. 在Jinja2中,如何测试变量是否未定义?
- 21. 如何在引用它之前测试变量是否已定义?
- 22. 如何测试块是否被调用
- 23. 如何测试window.print()是否被覆盖?
- 24. 如何测试div是否被阻止
- 25. 如何检查字符串中是否只定义了符号?
- 26. 如何测试Clojure中两个数字是否接近
- 27. 在Clojure中,符号名称开头的问号是否有特殊含义?
- 28. Clojure单元测试:检查函数是否被调用
- 29. 如何防止Clojure测试之间的符号污染?
- 30. 如何检测Console.In(stdin)是否已被重定向?
辉煌,曾第一次。谢谢! :) – Zubair 2010-11-16 20:53:48