verketten ist ein Alias für 'cl-verketten' in 'cl.el'.
(TYPE SEQUENCE verketten ...)
Verketten Sie das Argument SEQUENCEs in eine Sequenz vom Typ TYPE.
Also für dein Beispiel
(concatenate 'list '("a" "b" "c") '("d" "e" "f"))
Da es in definiert ist, müssen clSie möglicherweise (require 'cl)zuerst, ansonsten können Sie verwenden, cl-concatenatewas standardmäßig geladen zu sein scheint.
Wie von @phils hervorgehoben, cl-concatenateruft @phils nur auf, appendwenn TYPE ist 'list. Hier ist die Quelle von 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))))
Wenn Sie also nur Listen verwenden, ist die direkte Verwendung einfacher append, wie von @John Kitchin ausgeführt.
Schließlich erwähnte @lawlist nconc:
nconc ist eine integrierte Funktion in 'C-Quellcode'.
(Nconc & Rest Listen)
Verketten Sie beliebig viele Listen, indem Sie sie ändern. Nur das letzte Argument wird nicht geändert und muss keine Liste sein.
Was das bedeutet:
(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")