Rozważmy funkcję z następującym podpisem:Clojure stosowania mapie i argumentów kluczowych zniszczenie
(defn make-widget [& {:keys [x y] :or {x 10 y 20}}]
...)
Jaki jest najlepszy sposób, aby przejść do mapy do funkcji, np
(make-widget {:x 100})
lub
(make-widget {:y 200 :x 0})
Co mam aktualnie myśli jest poprzez vec
, flatten
i apply
np .:
(apply make-widget (flatten (vec ({:x 100}))
Jestem przekonany, że istnieje lepszy sposób na zrobienie tego. Czy możesz rozważyć jeden?
Funkcja mapply, opisana w odpowiedzi noncom, jest standardowym sposobem wykonania tej czynności. –