2011-04-06 59 views

回答

8

我沒有完全理解你的問題,但我想你想 派遣只能在一個參數。你可以這樣做,我認爲:

user=> (defmulti even-or-odd (fn [x _] (even? x))) 
#'user/even-or-odd 
user=> (defmethod even-or-odd true [a _] :even) 
#<MultiFn [email protected]> 
user=> (defmethod even-or-odd false [a _] :odd) 
#<MultiFn [email protected]> 
user=> (even-or-odd 2 3) 
:even 
user=> (even-or-odd 3 3) 
:odd 
user=> 
6

你的意思是選用基於值的功能?

然後你只需要

(defmulti some-method (fn [a b] a)) 
相關問題