2011-12-16 31 views
3

我已經創建了3個函數。每個連接到數據庫,運行查詢並顯示結果。單獨運行,他們都可以正常工作。不過,我希望用戶決定運行3+的哪個報告,爲此他們將選擇一個參數並點擊執行按鈕。我如何編寫一個嵌套,然後在Clojure中決定執行哪些函數?如果在clojure做

如果param =「reporta」 不執行泛函 否則如果param =「reportb」 不執行functionb 其他等 等 等

我已經在網上搜索,但真的不能找到一個很好的例子我正在嘗試做什麼...任何建議非常感謝。

回答

10

使用condcondp

(condp = param 
    "reporta" (functiona) 
    "reportb" (functionb) 
    (function-else)) 

或者,你可以使用地圖的功能,只是指數PARAM。

+7

在這種情況下,你也可以使用`case`因爲相比事情文字。 – kotarak 2011-12-16 20:35:21

2

您可以使用case您的問題:

(case param 
    "reporta" (do-something-a) 
    "reportb" (do-something-b) 
    (else-case))