একটি নেমস্পেস হ'ল নেট জিনিস, অনেকগুলি শিল্প-শক্তির ভাষায় প্রচলিত, ফ্রেমওয়ার্কগুলি সংগঠিত করার এবং বিভিন্ন গ্রন্থাগারের মধ্যে নামকরণের বিরোধগুলি এড়ানোর একমাত্র উপায়। আপনি এবং আমি উভয়ই "Foo" টাইপ সংজ্ঞায়িত করতে পারি এবং প্রকল্পে তাদের উভয়ই ব্যবহার করতে পারি, তবে তারা আলাদা আলাদা নেমস্পেসে থাকে (যেমন এনএস 1.ফু এবং এনএস 2.ফু)। নেট জড়িত নেম স্পেস।
মডিউলটি একটি এফ # জিনিস, এটি একটি "স্থিতিশীল শ্রেণীর" সাথে প্রায় একই রকম হয় ... এটি এমন একটি সত্তা যা লেট-বাউন্ড মান এবং ফাংশনগুলি ধরে রাখতে পারে, পাশাপাশি প্রকারগুলি (নোট স্পেসে সরাসরি মান / ফাংশন, নেমস্পেস থাকতে পারে না কেবলমাত্র প্রকারগুলিতে থাকতে পারে যা এতে মান এবং ফাংশন থাকে) মডিউলটির ভিতরে থাকা বিষয়গুলি "ModuleName.Thing" এর মাধ্যমে উল্লেখ করা যেতে পারে, যা নামের স্থানগুলির জন্য একই সিনট্যাক্স, তবে F # -র মডিউলগুলিও অযোগ্য অ্যাক্সেসের অনুমতি দেওয়ার জন্য 'খোলা' হতে পারে, যেমন
open ModuleName
...
Thing // rather than ModuleName.Thing
(সম্পাদনা: নেমস্পেসগুলিও একইভাবে খোলা যেতে পারে, তবে মডিউলগুলি মান এবং ফাংশন ধারণ করে এমন একটি মডিউল খোলার বিষয়টি আরও 'আকর্ষণীয়' করে তোলে, যাতে আপনি মান এবং ফাংশন যেমন "কোস" ব্যবহার করতে পারেন, নাম হিসাবে ব্যবহার করতে পারেন) সরাসরি, অন্যদিকে। নেট ভাষাগুলিতে আপনার সাধারণত সর্বদা এটির যোগ্যতা অর্জন করতে হবে, যেমন "ম্যাথকোস"।
আপনি যদি এফ # তে 'শীর্ষ স্তরের' কোডটিতে টাইপ করেন তবে এই কোডটি স্পষ্টভাবে একটি মডিউলে যায়।
আশা করি এটি কিছুটা সহায়তা করে, এটি একটি দুর্দান্ত মুক্ত প্রশ্ন। :)