Gerekli bir argüman x ve isteğe bağlı argüman opt1 VEYA bir anahtar kelime argümanı opt2 olan bir işlev oluşturmak istiyorum.Clojure Anahtar Kelime ve İsteğe Bağlı Bağımsız Değişken Sorunu
Şu anda
(defn foo x & [opt1 {:keys [opt2]}]
...
var Ama yukarıdaki imza sadece x ve opt1 hem mevcut olduğunda
(foo 'x 'opt1 {:opt2 'opt2})
değil bu
(foo 'x {:opt2 'opt2})
gibi gibi beni anahtar kelime argüman opt2 geçmek sağlar
Lütfen gerekli argüman X'i veya opt1 veya opt2'yi seçen bir fonksiyon yaratmama yardım edin. re opt2 bir anahtar kelime argümanıdır.
Teşekkür ederiz.
DÜZENLEME: Diğer makrolar için de aynısını yapmak istiyorum. Bu yüzden hala defmacro kullanmam gerekiyor.
'[clojure.contrib.def] 'den defnk' kullanılarak düşünün (http://richhickey.github.com/clojure-contrib/def-api.html) yerine açık Strüktür kırıcı arasında. – ffriend
'defnk', 1.2'den daha tutarlı yerleşik işlevler lehine kullanımdan kaldırılmıştır. – kotarak