concatenate adalah alias untuk 'cl-concatenate' di 'cl.el'.
(SEQUENCE TYPE gabungan ...)
Concatenate, menjadi urutan tipe TYPE, argumen SEQUENCEs.
Jadi untuk contoh Anda
(concatenate 'list '("a" "b" "c") '("d" "e" "f"))
Karena itu didefinisikan di clAnda mungkin harus (require 'cl)terlebih dahulu, jika tidak Anda dapat menggunakan cl-concatenateyang tampaknya dimuat secara default.
Juga, seperti yang ditunjukkan oleh @phils cl-concatenatehanya menelepon appendsaat TYPE sedang'list , inilah sumber dari cl-extra.el:
(defun cl-concatenate (type &rest sequences)
"Concatenate, into a sequence of type TYPE, the argument SEQUENCEs.
\n(fn TYPE SEQUENCE...)"
(pcase type
(`vector (apply #'vconcat sequences))
(`string (apply #'concat sequences))
(`list (apply #'append (append sequences '(nil))))
(_ (error "Not a sequence type name: %S" type))))
Jadi jika Anda hanya menggunakan daftar, lebih mudah digunakan secara langsung append, seperti yang ditunjukkan oleh @John Kitchin.
Akhirnya, @lawlist menyebutkan nconc:
nconc adalah fungsi bawaan di 'kode sumber C'.
(nconc & sisanya LISTS)
Gabungkan sejumlah daftar dengan mengubahnya. Hanya argumen terakhir yang tidak diubah, dan tidak perlu daftar.
Apa artinya ini:
(nconc '("a" "b" "c") '("d" "e" "f"))
=> ("a" "b" "c" "d" "e" "f")
(setq l1 '("a" "b" "c")
l2 '("d" "e" "f"))
(nconc l1 l2)
=> ("a" "b" "c" "d" "e" "f")
l1
=> ("a" "b" "c" "d" "e" "f")
l2
=> ("d" "e" "f")