আমি ব্যারি জয়ের সাম্প্রতিক কাজের সাথে পরিচিত নই, তবে তার পুরানো কাজের মধ্যে এমন কিছু জিনিস রয়েছে যা আপনি লিস্পে করতে পারবেন না , কারণ প্রকারগুলি অতিরিক্ত তথ্য দেয়।
উদাহরণস্বরূপ, ধরুন আপনি লিস্প ডেটা কাঠামোর আকার নির্ধারণ করতে চান। এটি একটি পরমাণুর জন্য 1, এবং এন পরমাণুর তালিকার জন্য n এবং আরও সাধারণ আকার (x) + আকার (y) এর জন্য (cons x y)
।
এবার মিশ্রণে প্রকারে নিক্ষেপ করুন। একটি তালিকা আকার তার দৈর্ঘ্য হবে। এখন পরমাণুর তালিকার তালিকার আকার কত? যদি আপনি এই ডেটা কাঠামোটিকে একটি তালিকা হিসাবে বিবেচনা করেন (যার উপাদানগুলি পরমাণুর তালিকাগুলি হয়ে থাকে), উত্তরটির তালিকাটির দৈর্ঘ্য। যদি আপনি এই ডাটা স্ট্রাকচারটিকে পরমাণুযুক্ত বলে মনে করেন যা তালিকাগুলির তালিকায় সঞ্চিত থাকে তবে উত্তরটি উপাদান তালিকার দৈর্ঘ্যের যোগফল।
প্রকারগুলি আপনাকে কাঁচা ডেটার এই দুটি দর্শন (আকার) এর মধ্যে পার্থক্য করতে দেয়। আপনার একটি টাইপ সিস্টেমের দরকার যা আপনাকে (তালিকা) (তালিকা অ্যাটম) এবং (তালিকা তালিকা) (অ্যাটম) এর মধ্যে পার্থক্য করতে দেয়। এই পার্থক্যের সর্বাধিক সাধারণ বাস্তবায়ন হ'ল টাইপ ক্লাসগুলির সাথে (হাস্কেলের মতো)।