এই প্রশ্নটি বিষয়গত নয়। রেফারেন্সড বইটিতে একটি খুব নির্দিষ্ট ক্রিয়া ব্যবহার করা হয়েছে এবং আমি বুঝতে চাই যে এই শব্দবন্ধটির অর্থ কী, কারণ আমি ভীত যে আমি কিছু ভুল বুঝছি।
থেকে আপনি একটি Haskell, জানুন , নিম্নলিখিত অনুচ্ছেদ তৃতীয় ও শেষ এক ধারণকারী "আমরা অনুমান হয় *"।
data Barry t k p = Barry { yabba :: p, dabba :: t k }এবং এখন আমরা এটির একটি উদাহরণ তৈরি করতে চাই
Functor।Functorধরণের ধরনের চায়* -> *তবেBarryএটির মতো লাগে না। কি ধরণেরBarry? ওয়েল, আমরা দেখতে এটি তিন ধরণের পরামিতি লাগে, তাই এটি হতে চলেছেsomething -> something -> something -> *। এটি নিরাপদ যেpএটি একটি কংক্রিট ধরণের এবং এই জাতীয় ধরণের রয়েছে*। কারণk, আমরা ধরে নিই*এবং তাই এক্সটেনশন দ্বারা,tএক ধরণের রয়েছে* -> *। এখন আসুনsomethingআমরা সেই স্থানগুলির সাথে প্রতিস্থাপন করি যা আমরা স্থানধারক হিসাবে ব্যবহার করেছি এবং আমরা দেখতে পাচ্ছি এটির একটি ধরণের রয়েছে(* -> *) -> * -> * -> *।
আমরা কিছুতেই কেন ধরে নিচ্ছি? "আমরা এক্স ধরে নিই (অর্থাত্ আমরা এক্সটি সত্য বলে ধরে নিই)" পড়ার পরে আমার পক্ষে এই ভাবনা স্বাভাবিক যে এক্সটি মিথ্যা, সেই ক্ষেত্রেও আমাদের বিবেচনা করা উচিত। উদাহরণস্বরূপ নির্দিষ্ট ক্ষেত্রে, করতে পারিনি tধরনের হতে (* -> *) -> *এবং kধরনের (* -> *)? যদি এটি হয় তবে যা কিছু tএবং kপ্রকৃতপক্ষে ছিল t kতা কি এখনও একটি কংক্রিটের ধরণ হবে, না?
আমি দেখতে পাচ্ছি যে যুক্তির পুরো লাইনটি তখন সংকলকের বিপরীতে পরীক্ষা করা হয়েছে, তবে আমি মনে করি না যে সংকলকটি ধরে নিয়েছে । যদি এটি হয়, আমি কী জানতে চাই, যদি তা না হয় তবে আমি আবার ভয় করি যে আমি অনুচ্ছেদের অর্থটি অনুপস্থিত।
k :: Lকোনও ধরণের জন্য থাকতে পারিL, যতক্ষণ নাt :: L -> *। এখানে একটি সংকলক অবশ্যই কিছু নির্দিষ্ট চয়ন করতে হবেL, বা একটি বহুজাতির অবলম্বন। পলিজিন্ড সর্বাধিক সাধারণ বিকল্প হতে পারে তবে এখানে জিএইচসি চয়ন করেL = *(বেসিক হাস্কেলের পলকিন্ড নেই, সেগুলি এক্সটেনশন হিসাবে চালু করতে হবে)। যেহেতু এটি এমন কিছু চয়ন করে যা বরং স্বেচ্ছাচারী, LYAH "অনুমান" (AFAICT) শব্দটি ব্যবহার করে।