A -> b -> a এবং c -> a -> c টাইপের স্বাক্ষরের মধ্যে কি পার্থক্য রয়েছে?


16

এই প্রশ্নটি হ্যাস্কেল ফাংশন সম্পর্কে একটি তাত্ত্বিক প্রশ্ন যা কোনও ধরণের আর্গুমেন্ট নিতে পারে। এর স্বাক্ষরের প্রকারের সাথে কীভাবে কার্যকারিতা রয়েছে তার মধ্যে কোনও পার্থক্য রয়েছে

a -> b -> a 

এবং

c -> a -> c 

তাত্ক্ষণিক হয়? কোন সাহায্য প্রশংসা করা হয়।


6
না, আপনি কেবল ধরণের ভেরিয়েবলের নাম পরিবর্তন করেছেন । যতক্ষণ না আপনি কোনও ভেরিয়েবলের অন্য ভেরিয়েবলের নাম পরিবর্তন করেন না (যেমন একটি নাম সংঘাত রয়েছে), কোনও সমস্যা নেই।
উইলেম ভ্যান অনসেম

টাইপ ভেরিয়েবলগুলি অন্য কোথাও আবদ্ধ কিনা তা নির্ভর করে।
বার্গি

উত্তর:


17

এখানে কোন পার্থক্য নেই. যেহেতু a, bএবং ছোট হাতc দিয়ে শুরু করা হয় , এগুলি ভেরিয়েবল । আপনি ভেরিয়েবলগুলির নাম পরিবর্তন করতে পারেন এবং যতক্ষণ দুটি (বা আরও) ভেরিয়েবল " সংঘর্ষ " না করে, ততক্ষণ এটি একই থাকে ।

এই জাতীয় সংঘর্ষ ঘটতে পারে যদি আপনি কোনও ভেরিয়েবলের নাম পরিবর্তন করে থাকেন যেমন এর অন্য নামের মতো একই নাম থাকে বা আপনি যখন দুটি (বা আরও) ভেরিয়েবল একই নতুন নামে পরিবর্তন করেন। যদি আপনি aউদাহরণস্বরূপ bআপনার প্রথম কোডের খণ্ডটিতে ভেরিয়েবলটির নাম পরিবর্তন করে রাখেন তবে আমরা পেয়ে যাব b -> b -> b, তবে এটি একই নয়, তখন থেকেই আমরা প্রয়োগ করি যে প্রথম এবং দ্বিতীয় পরামিতি একই ধরণের। যদিও আপনার ধরণের স্বাক্ষরে, আমাদের কাছে একই ধরণের দুটি ধরণের বাছাই করার স্বাধীনতা রয়েছে তবে এটি প্রয়োজনীয় নয়


16

নাঃ। a -> b -> aযেমন ভাবেন This Type -> Another Type -> This Type। তারপরে উভয়ই প্রদত্ত প্যাটার্নে ফিট করে। যাইহোক, অস্থির মতো a -> b -> cফিট কিছু : This Type -> That Type -> Yet Another Type(সাধারণত) আলাদা; প্রান্তের ক্ষেত্রে বাদে কখন c = a, যা আপনার আগ্রহী সেই প্যাটার্নটি দেয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.