এফ # তে একটি ওয়াই কম্বিনেটরের সংজ্ঞা
let rec y f x = f (y f) x
চটি প্রতারণামূলক সাব-সমস্যাগুলির জন্য প্রথম যুক্তি হিসাবে কিছু ধারাবাহিকতা রাখার প্রত্যাশা করে। ধারাবাহিকতা হিসাবে yf ব্যবহার করে, আমরা দেখতে পাচ্ছি যে চ বিকাশ করা যেতে পারে ক্রমাগত কলগুলিতে প্রয়োগ করা হবে
let y f x = f (y f) x = f (f (y f)) x = f (f (f (y f))) x etc...
সমস্যাটি হ'ল, একটি অগ্রাধিকার হিসাবে, এই স্কিমটি কোনও টেল কল অপ্টিমাইজেশন ব্যবহার বন্ধ করে দেয়: প্রকৃতপক্ষে চ এর কিছু অপারেশন পেন্ডিং থাকতে পারে, সেক্ষেত্রে আমরা কেবলমাত্র চ এর সাথে সম্পর্কিত স্থানীয় স্ট্যাক ফ্রেমটিকে পরিবর্তন করতে পারি না।
সুতরাং:
- এক প্রান্তে, ওয়াই সংযুক্তকারী ব্যবহারের জন্য ক্রিয়াকলাপের থেকে পৃথক পৃথক ধারাবাহিকতা প্রয়োজন ।
- টিসিও প্রয়োগ করার লক্ষ্যে, আমরা চাইব যে কোনও অপারেশন পর্বে নেই এবং কেবলমাত্র চ কে কল করুন।
আপনি কি জানেন যে কোনও উপায়েই এই দু'জনের মধ্যে পুনর্মিলন ঘটে? সঞ্চয়ের কৌশল সহ ওয়াইয়ের মতো, বা সিপিএস ট্রিকের সাথে ওয়াইয়ের মতো? বা কোনও যুক্তি প্রমাণ করে যে এটি করার কোনও উপায় নেই?
f
। আমরা দেখতে পাচ্ছি যে y
এটি f
একটি শাঁস দিয়ে টেইলকেল করতে পারে (y f)
, তবে আপনি যা বলছেন f
কিছু অপেক্ষারত অপেক্ষায় থাকতে পারে। আমি মনে করি যে এটি আলাদা মেশিনযুক্ত আরও টেল্কল বন্ধুত্বপূর্ণ আছে কিনা তা জানতে আগ্রহী হবে। আমি ভাবছি যদি এই প্রশ্নটি সিএস স্ট্যাকেক্সচেঞ্জের সাইটে আরও ভাল মনোযোগ পেতে পারে?