Рассмотрим функцию со следующей сигнатурой:
(defn make-widget [& {:keys [x y] :or {x 10 y 20}}]
...)
Каков наилучший способ передать карту функции, например:
(make-widget {:x 100})
или
(make-widget {:y 200 :x 0})
То, что я сейчас думал, это через vec
, flatten
и apply
например:
(apply make-widget (flatten (vec ({:x 100}))
Я твердо верю, что есть лучший способ сделать это. Можете ли вы подумать об этом?