如果那么在clojure

时间:2011-12-16 16:43:53

标签: clojure

我创造了3个功能。每个都连接到数据库,运行查询并显示结果。从根本上说,他们一切都很好。但是我希望用户决定运行3+的哪个报告,为此他们将选择一个参数并点击执行按钮。如何在Clojure中编写嵌套来决定执行哪些函数?

如果param =“reporta” 执行功能 否则,如果param =“reportb” 执行functionb 别的等等 等等 等

我在网上搜索过但无法找到我想要做的好例子......任何建议都非常感激。

2 个答案:

答案 0 :(得分:11)

使用condcondp

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

或者,您可以使用函数映射,只使用参数索引。

答案 1 :(得分:3)

您可以使用case解决问题:

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