2009-08-07 27 views
9

私はcondp節を使いたいですが、私はどのような不一致の節を捉えるか分かりません。それ、どうやったら出来るの?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))) 

答えて

17

documentation for condpは言う:

単一のデフォルト式は句に従うことができ、そして何の句が一致しない場合は、その値が返されます。デフォルトの式が指定されておらず、句が一致しない場合、IllegalArgumentExceptionがスローされます。

ので:

(condp = type 
    'num (first expr) 
    'add expr 
    expr))) 
関連する問題