Sto cercando qualcosa di simile a select-keys:Esiste una funzione standard che accetta un comando e un elenco di chiavi e restituisce l'elenco dei valori corrispondenti?
(desired-fn {:a 1, :b 2, :c 3, :d 4} [:a :d])
;= [1 4]
;; N.B. the order of the keys in the argument seq is preserved
(= (desired-fn (array-map :a 1, :b 2, :c 3, :d 4)
[:b :c])
(desired-fn (array-map :d 4, :c 3, :a 1, :b 2)
[:b :c]))
;= true
Non è particolarmente difficile da attuare, anche se non ho provato a venire con un buon nome ancora:
(defn select-values-corresponding-to-keys [m ks]
(for [k ks]
(get m k)))
Am I ignorante di una funzione standard che soddisfa proprio questa esigenza? In caso contrario, altri linguaggi, ad es. Python, Ruby, Haskell, hanno un nome per questa funzione?
Come è probabilmente chiaro, esiste un'implementazione "canonica" ed è 'mappa'; una delle risposte di 'map' sopra sono corrette. 'map' usato in questo modo è un sinonimo di ciò che l'articolo di Jay chiama' select-values'. –