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