সাধারণ সমস্যাটি হ'ল আপনার দরকার হয় x
এবং y
এগুলি প্রবেশ করানোর আগে তাদের মূল্যায়ন করা উচিত somelist
। সমস্যাটির উদ্ধৃত তালিকা (সঙ্গে '
যেমন পাঠক সিনট্যাক্স) যে quote
একটি বিশেষ ফর্ম যে তার যুক্তি মূল্যায়ন না। দস্তাবেজ অনুসারে:
(quote ARG)
যুক্তিটি মূল্যায়ন না করেই ফিরিয়ে দিন। (quote x)
ফলন x
। সতর্কতা: quote
তার রিটার্ন মানটি তৈরি করে না, তবে কেবলমাত্র সেই মানটি ফিরিয়ে দেয় যা লিস্প পাঠক দ্বারা প্রাক-নির্মিত হয়েছিল ...
অতএব, আপনি হয় ব্যাককোটা বা আর্গুমেন্ট মূল্যায়ন একটি ফাংশন ব্যবহার করতে হবে।
ব্যাককোটিং আপনাকে ,
বাক্য উদ্ধৃত তালিকার উপাদানগুলিকে সিন্টেক্স সহ নির্বাচিতভাবে মূল্যায়ন করতে দেয় :
(setq x "x-val" y "y-val" z "z-val" somelist nil)
'(x y z) ; => (x y z)
`(x ,y z) ; => (x "y-val" z)
(add-to-list 'somelist `(x y ,z)) ; => ((x y "z-val"))
পর্যায়ক্রমে, আপনি ব্যবহার করতে পারেন cons
(@ উত্তর হিসাবে উত্তর তারশী হিসাবে) বা, স্বেচ্ছাসেবী সংখ্যার জন্য list
,:
(add-to-list 'somelist (cons x y)) ; => (("x-val" . "y-val"))
(setq somelist nil) ; reset
(add-to-list 'somelist (list x y z)) ; => (("x-val" "y-val" "z-val"))
কোনটি ব্যবহার করতে হবে তা উপাদানগুলির সাথে আপনার কী করা দরকার তার উপর নির্ভর করে।
`(,x . ,y)
।