লিস্প শৈলীর ভাষায়, একটি তালিকা সাধারণত এইভাবে সংজ্ঞায়িত করা হয়:
(list 1 2 3)
এই চ্যালেঞ্জের উদ্দেশ্যে, সমস্ত তালিকায় কেবল ইতিবাচক পূর্ণসংখ্যা বা অন্যান্য তালিকা থাকবে। আমরা listকীওয়ার্ডটি শুরুতে ছেড়ে দেব , সুতরাং তালিকাটি এখন এর মতো দেখাবে:
(1 2 3)
আমরা ব্যবহার করে একটি তালিকার প্রথম উপাদানটি পেতে পারি car। উদাহরণ স্বরূপ:
(car (1 2 3))
==> 1
এবং প্রথম উপাদানটি দিয়ে মুছে ফেলা সহ আমরা মূল তালিকাটি পেতে পারি cdr:
(cdr (1 2 3))
==> (2 3)
গুরুত্বপূর্ণ: cdrসর্বদা একটি তালিকা ফিরিয়ে দেবে, এমনকি যদি সেই তালিকার একটি উপাদান থাকে:
(cdr (1 2))
==> (2)
(car (cdr (1 2)))
==> 2
তালিকা অন্যান্য তালিকার ভিতরেও থাকতে পারে:
(cdr (1 2 3 (4 5 6)))
==> (2 3 (4 5 6))
এমন একটি প্রোগ্রাম লিখুন যা কোডটি ব্যবহার করে carএবং cdrএকটি নির্দিষ্ট পূর্ণসংখ্যাকে একটি তালিকাতে ফেরত দেয়। আপনার প্রোগ্রামটি যে কোডটি ফেরত দেয়, আপনি ধরে নিতে পারেন যে তালিকাটি সঞ্চিত আছে l, লক্ষ্য পূর্ণসংখ্যাটি lকোথাও রয়েছে এবং সমস্ত পূর্ণসংখ্যা অনন্য।
উদাহরণ:
ইনপুট: (6 1 3) 3
আউটপুট: (car (cdr (cdr l)))
ইনপুট: (4 5 (1 2 (7) 9 (10 8 14))) 8
আউটপুট: (car (cdr (car (cdr (cdr (cdr (cdr (car (cdr (cdr l))))))))))
ইনপুট: (1 12 1992) 1
আউটপুট: (car l)
(1 2 3) 16হবে, আমরা কি ফিরে আসব ()?
(1 2 3) 16কখনই প্রদর্শিত হবে না।