если тогда сделать в ближайшем будущем - PullRequest
4 голосов
/ 16 декабря 2011

Я создал 3 функции. Каждый подключается к базе данных, выполняет запрос и отображает результат. Запускать по отдельности, они все работают нормально. Однако я хочу, чтобы пользователь сам решил, какой отчет из 3+ запускать, для этого он выберет параметр и нажмет кнопку «Выполнить». Как мне написать вложенное, если затем сделать в Clojure, чтобы решить, какие функции выполнять?

Если param = "reporta" выполнять функции иначе если param = "reportb" выполнить функциюb еще и т. д. так далее и т.д.

Я искал в Интернете, но не могу найти хороший пример того, что я пытаюсь сделать ... Любой совет очень ценится.

Ответы [ 2 ]

11 голосов
/ 16 декабря 2011

Используйте cond или condp :

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

В качестве альтернативы, вы можете использовать карту функций и просто индексировать по параметру.

3 голосов
/ 11 декабря 2013

Вы можете использовать case для вашей проблемы:

(case param
  "reporta" (do-something-a)
  "reportb" (do-something-b)
  (else-case))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...