# জ্যাক যা উল্লেখ করেছে তা হ'ল একটি পার্থক্য। তবে যদি এটিই কেবল তফাত ছিল তবে আপনি সম্পর্কে cl-pushnewএবং জিজ্ঞাসা করতে পারেন add-to-list।
আর একটি গুরুত্বপূর্ণ পার্থক্য: add-to-listএকটি ফাংশন, যার অর্থ এটি এর সমস্ত যুক্তি বিশেষত প্রথমটি মূল্যায়ন করে। pushএটি একটি ম্যাক্রো (যেমনটি cl-pushnew) - এটি তার দ্বিতীয় যুক্তিকে মূল্যায়ন করে না; পরিবর্তে, এটি এটিকে একটি সাধারণ স্থান হিসাবে ব্যাখ্যা করে।
উদাহরণস্বরূপ, দ্বিতীয় আর্গুমেন্টটি যদি একটি প্রতীক হয় তবে এটি একটি পরিবর্তনশীল হিসাবে বিবেচিত হবে এবং প্রথম আর্গুমেন্টের মানটি একটি ভেরিয়েবল হিসাবে প্রতীকটির মানকে সংযুক্ত করা হয় এবং ভেরিয়েবলটি নতুন কনসকে সেট করা হয়।
যেমন ডক স্ট্রিং add-to-listবলেছেন:
This is handy to add some elements to configuration variables,
but please do not abuse it in Elisp code, where you are usually
better off using `push' or `cl-pushnew'.
add-to-listকরে কোড ব্যবহার করে কোড রূপান্তর করার জন্য সংগ্রাম করেcl-pushnewযাচ্ছিলাম এবং এই ব্লগ পোস্টটি বেশ আলোকপাতকারী বলে খুঁজে পেয়েছি: yoo2080.wordpress.com/2013/09/11/…