Eu tenho dois vetores [apple orange]e [5 10]. Como faço para construir uma lista de associações a ((apple 5) (orange 10))partir deles?
Eu tenho dois vetores [apple orange]e [5 10]. Como faço para construir uma lista de associações a ((apple 5) (orange 10))partir deles?
Respostas:
Você pode usar cl-pairlis:
(require 'cl-lib)
(cl-pairlis '(apple orange) '(5 10))
;; =>
;; ((apple . 5) (orange . 10))
Também funciona para vetores:
(cl-pairlis [apple orange] [5 10])
;; =>
;; ((apple . 5) (orange . 10))
(A clbiblioteca define o alias mais curto pairlispara cl-pairlis, mas isso é preterido nas versões mais recentes do Emacs.)
(cl-mapcar #'cons [apple orange] [5 10]) => ((apple . 5) (orange . 10))
(cl-mapcar #'list [apple orange] [5 10]) => ((apple 5) (orange 10))
O de Emacs cl-mapcartoma como argumentos uma função da aridade, uma ou mais e o mesmo número de seqüências que sua aridade. O Lisp comum mapcaré semelhante, mas as únicas sequências que ele aceita são listas.