আপনার প্রশ্নের উত্তর সত্যই রেনল্ডসের উপকথায় আছে (বিভাগ 1)। আমাকে আপনার জন্য এটি চেষ্টা এবং ব্যাখ্যা করতে দিন।
যে ভাষায় বা ফর্মালিজমে টাইপগুলিকে বিমূর্ততা হিসাবে বিবেচনা করা হয় , একটি টাইপ ভেরিয়েবল যেকোনও বিমূর্ত ধারণার পক্ষে দাঁড়াতে পারে। আমরা ধরে নিই না যে প্রকারগুলি টাইপ পদগুলির কিছু বাক্য গঠন, বা টাইপ অপারেটরগুলির কিছু স্থির সংগ্রহের মাধ্যমে উত্পাদিত হয়, বা আমরা সমতার জন্য দুই প্রকারের পরীক্ষা করতে পারি such এই জাতীয় ভাষায়, যদি কোনও ফাংশনটিতে টাইপ ভেরিয়েবল জড়িত থাকে তবে কেবলমাত্র এই ধরণের মানগুলিতে ফাংশনটি করতে পারে তা হ'ল এটি প্রদত্ত মানগুলির চারপাশে বদলানো। এটি এই ধরণের নতুন মান আবিষ্কার করতে পারে না, কারণ টাইপটি কী তা "জানে না"! এটি প্যারামিট্রিকটির স্বজ্ঞাত ধারণা ।
তারপরে রেনল্ডস এই স্বজ্ঞাত ধারণাটি কীভাবে গাণিতিকভাবে ক্যাপচার করবেন সে সম্পর্কে চিন্তাভাবনা করেছিলেন এবং নীচের নীতিটি লক্ষ্য করেছেন। ধরুন আমরা টাইপ পরিবর্তনশীল instantiate বলতে , দুটি ভিন্ন কংক্রিট প্রকারের বলে এবং আলাদা instantiations, এবং আমাদের মন মধ্যে কিছু সাদৃশ্য রাখা দুই কংক্রিট ধরনের মধ্যে। তারপরে আমরা কল্পনা করতে পারি যে, একটি উদাহরণে আমরা ফাংশনে তে একটি মান অন্য ক্ষেত্রে, মান ((যেখানে "সংশ্লিষ্ট" অর্থ এবং সম্পর্কিত হয়) দ্বারাএ এ ′ আর : এ ↔ এ ′ এক্স ∈ এ এক্স ′ ∈ এ ′ এক্স এক্স ′ আর টি এক্স এক্স ′ আর এক্স এক্স ′tAA′R:A↔A′x∈Ax′∈A′xx′R)। তারপরে, যেহেতু ফাংশনটি আমরা বা টাইপের মানগুলি সরবরাহ করছি তার সম্পর্কে কিছুই জানে না , সুতরাং এটি এবং ঠিক একইভাবে আচরণ করতে হবে । সুতরাং, ফাংশন থেকে আমরা যে ফলাফলগুলি পেয়েছি তা আবার আমাদের সম্পর্কের সাথে সম্পর্কিত হওয়া উচিত যা আমরা আমাদের মনে রেখেছি, অর্থাৎ যেখানেই এলিমেন্ট একটি উদাহরণের ফলাফল হিসাবে উপস্থিত হবে সেখানে উপাদানটি অবশ্যই অন্য পরিস্থিতিতে উপস্থিত হতে হবে। সুতরাং, একটি প্যারামেট্রিকিক পলিমারফিক ফাংশনটি টাইপ ভেরিয়েবলগুলির সম্ভাব্য তাত্ক্ষণিকতার মধ্যে সমস্ত সম্ভাব্য সম্পর্কিত চিঠিপত্র সংরক্ষণ করা উচিত ।txx′Rxx′
চিঠিপত্র সংরক্ষণের এই ধারণাটি নতুন নয়। গণিতবিদরা এটি সম্পর্কে দীর্ঘকাল ধরে জানেন। প্রথম উদাহরণে, তারা ভেবেছিল যে পলিমারফিক ফাংশনগুলি টাইপ ইনস্ট্যান্টের মধ্যে আইসোর্ফিজমগুলি সংরক্ষণ করে। নোট করুন যে আইসোমরফিজম বলতে বোঝায় একের সাথে চিঠিপত্রের কিছু ধারণা । স্পষ্টতই, আইসোর্ফিজমগুলি মূলত "হোমোমর্ফিজম" নামে পরিচিত। তারপরে তারা বুঝতে পেরেছিল যে আমরা এখন "হোমোর্ফিজম" বলি, অর্থাত্, একাধিক চিঠিপত্রের কিছু ধারণাও সংরক্ষণ করা হবে। বিভাগ সংরক্ষণে প্রাকৃতিক রূপান্তর নামে এই জাতীয় সংরক্ষণ চলে । তবে, আমরা যদি নিবিড়ভাবে এটি সম্পর্কে চিন্তা করি, আমরা বুঝতে পারি যে হোমোর্ফিজম সংরক্ষণ সম্পূর্ণরূপে অসন্তুষ্টিজনক। এবং প্রকারএ ′ এ এ ′ এ ′ এAA′আমরা উল্লিখিত সম্পূর্ণরূপে স্বেচ্ছাচারী। আমরা যদি বাছাই যেমন এবং হিসাবে , আমরা একই সম্পত্তি পাওয়া উচিত। সুতরাং, কেন "বহু-থেকে-একটি চিঠিপত্র", একটি অসম ধারণা, একটি প্রতিসম সম্পত্তি গঠনে ভূমিকা রাখতে হবে? সুতরাং, রেনল্ডস হোমোর্ফিজম থেকে যৌক্তিক সম্পর্কগুলিতে সাধারণীকরণের বড় পদক্ষেপ নিয়েছিলেন, যা বহু-বহু-চিঠিপত্র রয়েছে । এই সাধারণীকরণের সম্পূর্ণ প্রভাব এখনও পুরোপুরি বোঝা যায় নি। তবে অন্তর্নিহিত অন্তর্দৃষ্টি মোটামুটি পরিষ্কার।AA′A′A
এখানে আরও একটি সূক্ষ্মতা আছে। প্রকারের ভেরিয়েবলগুলির ইনস্ট্যান্টেশনগুলি যথেচ্ছভাবে পরিবর্তিত হতে পারে তবে ধ্রুব ধরণের স্থির থাকতে হবে। সুতরাং, যখন আমরা উভয় ভেরিয়েবল প্রকার এবং ধ্রুবক প্রকারের সাথে টাইপ এক্সপ্রেশনের জন্য সম্পর্কযুক্ত চিঠিপত্র তৈরি করি, তখন নির্বাচিত সম্পর্ক ব্যবহার করা উচিত যেখানেই প্রকারের ভেরিয়েবল উপস্থিত হয় এবং পরিচয় সম্পর্ক যেখানেই ধ্রুবক প্রকার উপস্থিত হয়। উদাহরণস্বরূপ, টাইপ জন্য সম্পর্ক অভিব্যক্তি হবে । সুতরাং, যদি এই ধরনের একটি ফাংশন, এটি একটি যুগল মানচিত্র উচিত এবং এর সাথে সম্পর্কিত কিছু যুগল থেকেRIKKt×Int→Int×tR×IInt→IInt×Rf(x,n)(x′,n)(m,x) এবং সম্পর্কিত । নোট করুন যে আমরা দুটি ক্ষেত্রে ধ্রুবক ধরণের জন্য একই মানগুলি রেখে ফাংশনটি পরীক্ষা করতে বাধ্য এবং আমাদের আউটপুটগুলিতে ধ্রুব ধরণের জন্য একই মান পাওয়ার গ্যারান্টিযুক্ত। সুতরাং, টাইপ এক্সপ্রেশনগুলির জন্য সম্পর্কিত সম্পর্ক স্থাপনের ক্ষেত্রে, আমাদের নিশ্চিত করা উচিত যে পরিচয় সম্পর্কগুলি প্লাগ করে (এই ধরণের কনসেন্ট হতে চলেছে এই ধারণার প্রতিনিধিত্ব করে), আমরা পরিচয় সম্পর্ক ফিরে পেয়েছি, অর্থাৎ, । এটি গুরুত্বপূর্ণ পরিচয় বিস্তারের সম্পত্তি।(m,x′)F(IA1,…,IAn)=IF(A1,…,An)
প্যারামিট্রিসিটি স্বজ্ঞাতভাবে বুঝতে, আপনাকে যা করতে হবে তা হ'ল কিছু নমুনা ফাংশন ধরণের বাছাই করা, সেই ধরণের সম্পর্কে কী কী ফাংশন প্রকাশ করা যায় তা ভেবে দেখুন এবং যদি আপনি টাইপ ভেরিয়েবলের বিভিন্ন ইনস্ট্যানটিশন এবং বিভিন্ন মানগুলির প্লাগ ইন করেন তবে সেই ফাংশনগুলি কীভাবে আচরণ করবে সে সম্পর্কে ভাবেন ইনস্ট্যান্টেশন প্রকার। আপনাকে শুরু করার জন্য কয়েকটি ফাংশনের প্রকারের পরামর্শ দিন: , , , , , ।t → I n t i n t → t t × t → t × t ( t → t ) → t ( t → t ) → ( t → t )t→tt→IntInt→tt×t→t×t(t→t)→t(t→t)→(t→t)