2009-08-07 34 views
9

Tôi muốn sử dụng mệnh đề condp nhưng tôi không biết cách bắt bất kỳ mệnh đề chưa khớp nào. Làm thế nào để làm điều đó?Làm thế nào để viết: khác trong condp trong Clojure?

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

Trả lời

17

Các documentation for condp nói:

Một biểu thức mặc định duy nhất có thể làm theo các điều khoản và giá trị của nó sẽ được trả lại nếu không có mệnh đề phù hợp. Nếu không có biểu thức mặc định nào được cung cấp và không có mệnh đề nào phù hợp, một IllegalArgumentException sẽ được ném ra.

Vì vậy:

(condp = type 
    'num (first expr) 
    'add expr 
    expr))) 
Các vấn đề liên quan