我该如何写:Clojure的condp中的else?

我该如何写:Clojure的condp中的else?,clojure,Clojure,我想使用condp子句,但我不知道如何捕捉任何不匹配的子句。我该怎么做 (defn subst[id value W-lang] (let [[type expr][(first W-lang)(rest W-lang)]] (condp = type 'num (first expr) 'add expr ***** expr))) 报告说: 子句后面可以有一个默认表达式,如果没有匹配的子句,则返回其值。如果未提供默认

我想使用condp子句,但我不知道如何捕捉任何不匹配的子句。我该怎么做

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

子句后面可以有一个默认表达式,如果没有匹配的子句,则返回其值。如果未提供默认表达式且没有匹配的子句,则抛出IllegalArgumentException

因此:

更好的方法是:使用<代码>(案例类型“num(first expr)”添加expr expr)
(condp = type
    'num (first expr)
    'add expr
    expr)))