Как мне написать: еще в condp в Clojure? - PullRequest
10 голосов
/ 07 августа 2009

Я хочу использовать предложение condp, но я не знаю, как перехватить любое несопоставимое предложение. Как мне это сделать?

(defn subst[id value W-lang]
  (let [[type expr][(first W-lang)(rest W-lang)]]
    (condp = type
        'num (first expr)
        'add expr       
        ***** expr)))

1 Ответ

18 голосов
/ 07 августа 2009

Документация для condp гласит:

За предложениями может следовать одно выражение по умолчанию, и его значение будет возвращено, если не найдено ни одного предложения. Если выражение по умолчанию не предоставлено и ни одно предложение не соответствует, генерируется исключение IllegalArgumentException.

Итак:

(condp = type
    'num (first expr)
    'add expr
    expr)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...