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 clBibliothek definiert den kürzeren Alias pairlisfü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-mapcarnimmt als Argumente eine Funktion der Arität eine oder mehrere und die gleiche Anzahl von Sequenzen wie seine Arität. Common Lisp's mapcarist ähnlich, aber die einzigen Sequenzen, die es akzeptiert, sind Listen.