概括
Clojure 中是否有类似http://en.wikipedia.org/wiki/E_programming_language作为 DSL 的东西?
背景
我知道:
http://bit.ly/N4jnTI和http://bit.ly/Lm3SSD
但是,两者都没有提供我想要的。
语境
我是能力系统和信息流的忠实粉丝。我想知道是否有人为这两种技术开发了 Clojure DSL。以下将是理想的:
所有对象都有一些标签(比如在它的元表中),列出了谁对该对象具有读取权限
当我想以用户“foo”的身份运行查询时,我设置了一些上下文变量,说“现在,只使用 foo 的功能”——然后函数,当它试图访问对象时,要么获取对象(如果 foo 有访问它)或 nil (如果 foo 无权访问它)。目前,泄露有关物体存在的信息对我来说并不是什么大问题。
问题
所以问题是——作为 Clojure DSL,这很容易做到吗?每个对象都有一些功能标签,我们可以在某些标签下执行一些功能/代码,运行时系统确保没有人可以访问他们不应该访问的东西。
谢谢!