爲了工作,我想描述一個標準醫學公式(用於報告藥物副作用)的最簡潔的方式。 (粗略地說,事後使其通過打嗝,但不是唯一的,這就是爲什麼我不直接寫爲打嗝結構)在另一個裏面拼接一個集合
例如,描述的一部分將是:
{"reportertitle" [:one-of "Dr" "Pr" "Mrs" "Mr"] ; the reporter is usually the physician
"reportergivenname" :text
"reporterfamilyname" :text
"reporterorganization" :text
"reporterdepartment" :text
....
"literaturereference" :text
"studyname" :text
....}
的關鍵是標準名稱,我不能改變它們,但我希望能夠輕鬆分解事物:例如,在整個地圖中高度使用前綴「記者」,我希望能夠分解它,例如通過做:
{ (prefix "reporter"
"title" [:one-of "Dr" "Pr" "Mrs" "Mr"]
"givenname" :text
"familyname" :text
"organization" :text
"department" :text)
.....
"literaturereference" :text
"studyname" :text
....}
但這不能工作,因爲我認爲我c註釋「集成」(拼接,我相信是正確的術語)在外部地圖內的'前綴'的結果,無論是函數還是宏。
有沒有解決方案來實現這一目標,同時保持高水平的聲明/簡潔? (整個窗體是巨大的,可能是由非開發人員可以讀取)
(由於我是新來的Clojure,幾乎每一個設計的建議是歡迎;))
謝謝!
是的,我想我將不得不把我的宏叫上游。我可以在編譯時使用clojure.zip函數來查找和更改「前綴」表單嗎?還是有更方便的方法?現在你已經談論過了,看起來嵌入宏參數中的術語似乎很常見(我相信我在Scheme中看到過類似的東西)。 – 2012-08-09 15:56:05
我建議用'[「記者」bla-bla-bla「'替換'(前綴」記者「bla-bla-bla」)。這樣你就不需要寫宏(你可以寫普通函數)。 – 2012-08-09 16:17:31
@NikitaBeloglazov:我根據您對非宏版本的建議進行了編輯。 – 2012-08-09 18:19:13