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))
( clThư viện định nghĩa bí danh ngắn hơn pairlischo 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-mapcarlấ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 mapcarlà tương tự, nhưng trình tự duy nhất mà nó chấp nhận là danh sách.