কনকেনেটেট হ'ল 'ক্লিচেল' -তে 'সিএল-কনকনেটেট' এর একটি নাম।
(এক প্রকারের টাইপ সিকোয়েন্স ...)
সংযুক্তি, টাইপ TYPE এর অনুক্রমের মধ্যে SEQUENCE টি যুক্তি।
সুতরাং আপনার উদাহরণের জন্য
(concatenate 'list '("a" "b" "c") '("d" "e" "f"))
যেহেতু এটি সংজ্ঞায়িত হয়েছে cl
আপনাকে (require 'cl)
প্রথমে হতে পারে , অন্যথায় আপনি ব্যবহার করতে পারেন cl-concatenate
যা ডিফল্টরূপে লোড হয়েছে বলে মনে হয়।
এছাড়াও, @ ফিলস দ্বারা উল্লিখিত হিসাবে যেমন টিওয়াইপিই হয় cl-concatenate
ঠিক append
তখনই কল করে, উত্সটি 'list
এখানে থেকে 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))))
সুতরাং আপনি যদি কেবল তালিকা ব্যবহার করছেন তবে এটি সরাসরি ব্যবহার করা সহজ append
, @ জন কিচিন নির্দেশ করেছেন।
অবশেষে, @ লিওলিস্ট উল্লেখ করেছেন nconc
:
এন সি সি সি 'সোর্স কোড' এর একটি অন্তর্নির্মিত ফাংশন।
(এনসিএনসি এবং বিশ্রামের তালিকা)
যে কোনও সংখ্যক তালিকাকে পরিবর্তন করে সংযুক্ত করুন। শুধুমাত্র শেষ যুক্তিটি পরিবর্তন করা হয় না, এবং তালিকা তৈরি করার দরকার নেই।
কি এই মানে:
(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")