我怎么写:Clojure中的condp中的else?

时间:2009-08-07 03:56:22

标签: 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)))

1 个答案:

答案 0 :(得分:18)

documentation for condp说:

  

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

所以:

(condp = type
    'num (first expr)
    'add expr
    expr)))