Tôi có hai vectơ, [apple orange]
và [5 10]
. Làm thế nào để tôi xây dựng một danh sách liên kết ((apple 5) (orange 10))
từ họ?
Tôi có hai vectơ, [apple orange]
và [5 10]
. Làm thế nào để tôi xây dựng một danh sách liên kết ((apple 5) (orange 10))
từ họ?
Câu trả lời:
Bạn có thể sử dụng cl-pairlis
:
(require 'cl-lib)
(cl-pairlis '(apple orange) '(5 10))
;; =>
;; ((apple . 5) (orange . 10))
Cũng hoạt động cho các vectơ:
(cl-pairlis [apple orange] [5 10])
;; =>
;; ((apple . 5) (orange . 10))
( cl
Thư viện định nghĩa bí danh ngắn hơn pairlis
cho cl-pairlis
, nhưng điều này không được chấp nhận trong các phiên bản Emacs mới hơn.)
(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
lấy làm đối số một chức năng của arity một hoặc nhiều và cùng số lượng trình tự như arity của nó. Lisp thông thường mapcar
là tương tự, nhưng trình tự duy nhất mà nó chấp nhận là danh sách.