সিনট্যাক্সে বাউন্ডেড ভেরিয়েবলের প্রতিনিধিত্ব করার সমস্যা এবং বিশেষত ক্যাপচার-এড়ানোর বিকল্পের বিষয়টি সুপরিচিত এবং এর বেশ কয়েকটি সমাধান রয়েছে: আলফা-সমতা, ডি ব্রুইজন সূচক, স্থানীয় নামহীনতা, নামমাত্র সেট ইত্যাদির সাথে নামযুক্ত ভেরিয়েবল named
তবে আরও একটি স্পষ্টরূপে দৃষ্টিভঙ্গি উপস্থিত হতে পারে, যা আমি তবুও কোথাও ব্যবহার করতে দেখিনি। যথা, বেসিক সিনট্যাক্সে আমাদের কেবল একটি "ভেরিয়েবল" শব্দ রয়েছে, লিখিত বলুন , এবং তারপরে পৃথকভাবে আমরা একটি ফাংশন দেই যা প্রতিটি ভেরিয়েবলকে একটি বাইন্ডারে মানচিত্র করে যার স্কোপটি এটি থাকে। সুতরাং একটি ল্যাম্বদা-মধ্যম মতλ
লেখা হবে , এবং ফাংশন প্রথম মানচিত্র হবে প্রথম এবং দ্বিতীয় দ্বিতীয় । সুতরাং ডি Bruijn মত সূচকের এটা ধরনের, শুধুমাত্র পরিবর্তে হচ্ছে "গণনা s" এর সঙ্গতিপূর্ণ দপ্তরী এটি মেয়াদের বাইরে ফিরে হিসাবে, আপনি শুধু একটি ফাংশন নির্ণয় করা। (যদি এটি প্রয়োগের ক্ষেত্রে ডেটা স্ট্রাকচার হিসাবে উপস্থাপন করা হয় তবে আমি প্রতিটি চলক-মেয়াদী অবজেক্টকে সংশ্লিষ্ট বাইন্ডার-টার্ম অবজেক্টের একটি সাধারণ পয়েন্টার / রেফারেন্স সহ সজ্জিত করার কথা ভাবব))∙ λ ∙ λ λ λ
স্পষ্টতই এটি কোনও পৃষ্ঠাতে বাক্য লেখার জন্য বোধগম্য নয় যা মানুষের পড়তে পারে তবে ডি ব্রুইজন সূচকগুলিও হয় না। এটি আমার কাছে মনে হচ্ছে এটি গাণিতিকভাবে নিখুঁত জ্ঞান তৈরি করে এবং বিশেষত এটি ক্যাপচার-এড়ানো বিকল্পটিকে খুব সহজ করে তোলে: আপনি যে শব্দটি প্রতিস্থাপন করছেন সেটিকে বাদ দিন এবং বাধ্যতামূলক ফাংশনগুলির ইউনিয়ন গ্রহণ করুন। এটি সত্য যে এটির "ফ্রি ভেরিয়েবল" ধারণাটি নেই, তবে তারপরে (আবার) সত্যিকার অর্থে ডি ব্রুইজন সূচকগুলিও রাখেন না; উভয় ক্ষেত্রেই ফ্রি ভেরিয়েবল যুক্ত একটি পদটি সামনে "প্রসঙ্গ" বাইন্ডারগুলির একটি তালিকা সহ একটি শব্দ প্রতিনিধিত্ব করে।
আমি কি কিছু মিস করছি এবং এমন কোনও কারণ রয়েছে যা এই উপস্থাপনাটি কাজ করে না? এমন সমস্যা আছে যেগুলি এটি অন্যদের চেয়ে এত খারাপ করে তোলে যে এটি বিবেচনা করার মতো নয়? (আমি এখনই ভাবতে পারি একমাত্র সমস্যাটি হ'ল পদগুলির সেট (তাদের বন্ডিং ফাংশনগুলির সাথে একসাথে) সংক্ষিপ্তরূপে সংজ্ঞায়িত করা হয় নি, তবে এটি দুর্গম বলে মনে হয় না)) বা বাস্তবে এমন কোনও জায়গা রয়েছে যেখানে এটি ব্যবহৃত হয়েছে?