Ich habe zwei Vektoren [apple orange]
und [5 10]
. Wie erstelle ich daraus eine Assoziationsliste ((apple 5) (orange 10))
?
Ich habe zwei Vektoren [apple orange]
und [5 10]
. Wie erstelle ich daraus eine Assoziationsliste ((apple 5) (orange 10))
?
Antworten:
Sie können verwenden cl-pairlis
:
(require 'cl-lib)
(cl-pairlis '(apple orange) '(5 10))
;; =>
;; ((apple . 5) (orange . 10))
Funktioniert auch für Vektoren:
(cl-pairlis [apple orange] [5 10])
;; =>
;; ((apple . 5) (orange . 10))
(Die cl
Bibliothek definiert den kürzeren Alias pairlis
für cl-pairlis
, dies ist jedoch in neueren Emacs-Versionen veraltet.)
(cl-mapcar #'cons [apple orange] [5 10])
=> ((apple . 5) (orange . 10))
(cl-mapcar #'list [apple orange] [5 10])
=> ((apple 5) (orange 10))
Emacs cl-mapcar
nimmt als Argumente eine Funktion der Arität eine oder mehrere und die gleiche Anzahl von Sequenzen wie seine Arität. Common Lisp's mapcar
ist ähnlich, aber die einzigen Sequenzen, die es akzeptiert, sind Listen.