Мне нужно что-то, что дает мне последовательность действительных значений, переданных функции, аналогичную значению arguments в функции javascript.Получить список аргументов Clojure
Я знаю, что я могу захватить весь список аргументов функции с помощью
(defn fx [& args]
args)
<= (fx {:a 1} 2)
=> ({:a 1} 2)
Но это снимает Арность на моей функции. Я хочу иметь что-то вроде
(defn fx [{:keys [a]} b]
(MAGIC_FUNCTION_THAT_RETURNS_THE_ARGS_VALUES))
<= (fx {:a 1} 2)
=> ({:a 1} 2)
Возможно ли получить необработанную последовательность значений, переданных функции?
, если я не ошибаюсь, функции JavaScript принимают переменное число аргументов, а значение аргументов в JavaScript, таким образом, более или менее аналогично синтаксису vararg в clojure, о котором вы уже указали. – Kevin
Насколько я могу судить по документации, у Clojure нет ничего подобного. – Barmar
Обратите внимание, что вы можете присвоить имя деструктурированному значению: '[{: keys [a]: as m} b]'. Тогда у вас будет доступ к нему в целом: '[m b]'. –