概要
Clojure 内の DSL としてhttp://en.wikipedia.org/wiki/E_programming_languageのようなものはありますか?
バックグラウンド
私は知っています:
http://bit.ly/N4jnTIおよびhttp://bit.ly/Lm3SSD
しかし、どちらも私が望むものを提供しません。
環境
私はケイパビリティ システムと情報フローの両方の大ファンです。そして、これら 2 つの手法のために Clojure DSL を開発した人がいるかどうか疑問に思っています。以下が理想的です。
すべてのオブジェクトには、オブジェクトへの読み取りアクセス権を持つユーザーをリストするタグ (メタ テーブルなど) があります。
ユーザー「foo」としてクエリを実行したい場合、「今はfooの機能のみを使用する」というコンテキスト変数を設定します-その後、関数はオブジェクトに到達しようとすると、オブジェクトを取得します(fooが持っている場合)アクセスできる) または nil (foo がアクセスできない場合)。オブジェクトの存在に関する情報を漏らすことは、現時点では大したことではありません。
質問
問題は、これは Clojure DSL として簡単に実行できるものかということです。各オブジェクトにはいくつかの機能タグがあり、特定のタグの下で関数/コードの一部を実行できます。ランタイム システムは、アクセスしてはならないものに誰もアクセスできないようにします。
ありがとう!