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

unj*_*nj2 10 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)))
Run Code Online (Sandbox Code Playgroud)

Gre*_*ill 18

condp文档说:

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

所以:

(condp = type
    'num (first expr)
    'add expr
    expr)))
Run Code Online (Sandbox Code Playgroud)