প্রোগ্রামিং ভাষায় ক্লোজারগুলি একটি জনপ্রিয় এবং প্রায়শই পছন্দসই বৈশিষ্ট্য। উইকিপিডিয়া বলেছেন (জোর আমার):
কম্পিউটার বিজ্ঞানে, একটি ক্লোজার (...) সেই ফাংশনের অ-স্থানীয় ভেরিয়েবলের জন্য একটি রেফারেন্সিং পরিবেশের সাথে একত্রে একটি ফাংশন। একটি বন্ধকরণ কোনও ক্রিয়াকে তার তাত্ক্ষণিক লেক্সিকাল স্কোপের বাইরে চলকগুলিতে অ্যাক্সেস করার অনুমতি দেয়।
সুতরাং একটি বন্ধ হ'ল মূলত একটি (বেনামে?) ফাংশন মান যা তার নিজস্ব ক্ষেত্রের বাইরে ভেরিয়েবল ব্যবহার করতে পারে। আমার অভিজ্ঞতায়, এর অর্থ এটি এর সংজ্ঞা বিন্দুতে স্কেরে থাকা ভেরিয়েবলগুলি অ্যাক্সেস করতে পারে।
বাস্তবে, ধারণাটি কমপক্ষে ফাংশনাল প্রোগ্রামিংয়ের বাইরে থাকলেও এই ধারণাটি অন্যদিকে চলেছে বলে মনে হচ্ছে। বিভিন্ন ভাষা বিভিন্ন শব্দার্থবিজ্ঞান প্রয়োগ করে, এমনকি সেখানে মন্তব্যগুলির যুদ্ধ বলে মনে হয়। অনেক প্রোগ্রামার ক্লোজার কি তা জেনে নেই বলে মনে হয় না, এগুলি অজ্ঞাতনামা ফাংশনগুলির চেয়ে সামান্য বেশি দেখে।
এছাড়াও, ক্লোজারগুলি বাস্তবায়ন করার সময় বড় বাধা রয়েছে বলে মনে হয়। সর্বাধিক উল্লেখযোগ্য, জাভা 7 এগুলিকে অন্তর্ভুক্ত করার কথা ছিল তবে বৈশিষ্ট্যটি ভবিষ্যতের রিলিজে ফিরে গেছে।
ক্লোজারগুলি কেন এত কঠিন (বুঝতে এবং বুঝতে)? এটি খুব বিস্তৃত এবং অস্পষ্ট একটি প্রশ্ন, সুতরাং আমাকে এই আন্তঃসংযুক্ত প্রশ্নগুলির সাথে এটি আরও ফোকাস করতে দিন:
- সাধারণ শব্দার্থিক রীতিতে (ক্ষুদ্র-পদক্ষেপ, বড় পদক্ষেপ, ...) ক্লোজার প্রকাশের সাথে সমস্যা আছে?
- বিদ্যমান টাইপ সিস্টেমগুলি কি বন্ধের জন্য উপযুক্ত নয় এবং সহজেই প্রসারিত করা যায় না?
- Aতিহ্যবাহী, স্ট্যাক-ভিত্তিক পদ্ধতির অনুবাদগুলির সাথে তাল মিলিয়ে ক্লোজারগুলি আনতে কি সমস্যা হয়?
নোট করুন যে প্রশ্নটি বেশিরভাগ ক্ষেত্রে প্রক্রিয়াজাত, অবজেক্ট-ওরিয়েন্টেড এবং সাধারণভাবে স্ক্রিপ্টিং ভাষার সাথে সম্পর্কিত। আমি যতদূর জানি, কার্যকরী ভাষাগুলিতে কোনও সমস্যা নেই।