Common Lisp রিপ্রেজেন্টার নরমালাইজেশন

Common Lisp রিপ্রেজেন্টার সলিউশনগুলোতে যেসব নরমালাইজেশন প্রয়োগ করে, তার একটি সারসংক্ষেপ


রিপ্রেজেন্টার সাবমিশন পড়তে read এবং রিপ্রেজেন্টেশন লিখতে write ব্যবহার করে, সেই সঙ্গে আরও কিছু অতিরিক্ত নরমালাইজেশন প্রয়োগ করে। প্রতিটি সাবমিশনে নিচের নরমালাইজেশনগুলো প্রয়োগ করা হয়:

কমেন্ট সরানো

যেহেতু সাবমিশন লোড করতে read ব্যবহার করা হয়, তাই কমেন্ট সরিয়ে ফেলা হয়।

ডকুমেন্টেশন স্ট্রিং সরানো

ডকুমেন্টেশন স্ট্রিংয়ে থাকা সম্ভাব্য যেকোনো নাম নরমালাইজ করার বদলে স্ট্রিংটিই সরিয়ে ফেলা হয়। তবে ডকুমেন্টেশন স্ট্রিং ছিল কি না, রিপ্রেজেন্টেশনে তা উল্লেখ থাকে।

টেক্সট কেস নরমালাইজ করা

যেহেতু সাবমিশন লোড করতে read ব্যবহার করা হয়, তাই সব সিম্বল বড় হাতের অক্ষরে নরমালাইজ করা হয়।

টেক্সট ফরম্যাটিং নরমালাইজ করা

রিপ্রেজেন্টেশন write দিয়ে লেখা হয়, তাই সাবমিশনের ফরম্যাটিংয়ের কোনো খুঁটিনাটি (যেমন ইনডেন্টেশন, স্পেসিং, খালি লাইনে ক্লোজিং প্যারেন্থেসিস রেখে দেওয়া) রিপ্রেজেন্টেশনে সংরক্ষিত থাকে না।

সিম্বল নাম নরমালাইজ করা

ফাংশন, ভ্যারিয়েবল ও ম্যাক্রোর নাম এবং প্যাকেজের মতো সিম্বলগুলো gensyms-এ ম্যাপ করা হয়, যা রিপ্রেজেন্টেশনে ব্যবহৃত হয়।