এটি দুর্ভাগ্যজনক যে বিষয়টির সাহিত্যের বেশিরভাগ অংশ খুব ঘন। আমিও তোমার জুতোতে ছিলাম। আমি প্রোগ্রামিং ভাষা: অ্যাপ্লিকেশন এবং ব্যাখ্যার থেকে বিষয়টির সাথে আমার প্রথম পরিচয় পেয়েছি
http://www.plai.org/
আমি বিমূর্ত ধারণাটি সংক্ষেপে সংক্ষেপে বিশদ বর্ণনার চেষ্টা করব যা আমি অবিলম্বে সুস্পষ্টভাবে পাই নি। প্রথমত, টাইপ অনুমানটি উত্পাদন এবং তারপরে সীমাবদ্ধতাগুলি সমাধান করার কথা ভাবা যেতে পারে। প্রতিবন্ধকতা তৈরি করতে, আপনি সিনট্যাক্স ট্রি দিয়ে পুনরাবৃত্তি করেন এবং প্রতিটি নোডে এক বা একাধিক বাধা তৈরি করেন। উদাহরণস্বরূপ, নোড যদি +
অপারেটর হয় তবে অপারেশনগুলি এবং ফলাফলগুলি অবশ্যই সংখ্যার হতে হবে। একটি নোড যা কোনও ফাংশন প্রয়োগ করে ফাংশনটির ফলাফলের মতো একই ধরণের থাকে।
বিনা ভাষার জন্য let
, আপনি প্রতিস্থাপনের দ্বারা উপরের সীমাবদ্ধতাগুলি অন্ধভাবে সমাধান করতে পারেন। উদাহরণ স্বরূপ:
(if (= 1 2)
1
2)
এখানে, আমরা বলতে পারি যে if স্টেটমেন্টের শর্তটি অবশ্যই বুলিয়ান হতে হবে, এবং if স্টেটমেন্টের ধরণটি এর then
এবং else
ধারাগুলির ধরণের অনুরূপ । যেহেতু আমরা প্রতিস্থাপনের মাধ্যমে জানি 1
এবং 2
সংখ্যা, তাই আমরা জানি যে if
বিবৃতিটি একটি সংখ্যা।
যেখানে জিনিসগুলি অদ্ভুত হয়ে যায়, এবং যা আমি কিছু সময়ের জন্য বুঝতে পারি না, তা হ'ল:
(let ((id (lambda (x) x)))
(id id))
এখানে, আমরা id
এমন একটি ফাংশনকে আবদ্ধ করেছি যা আপনি যা যা পেরেছেন তা ফিরিয়ে দেয়, অন্যথায় পরিচয় ফাংশন হিসাবে known সমস্যাটি হ'ল ফাংশনের প্যারামিটারের x
প্রতিটি ব্যবহারের ক্ষেত্রে আলাদা id
। দ্বিতীয়টি id
হ'ল টাইপের একটি ফাংশন a -> a
, যেখানে a
কিছু হতে পারে। প্রথম টাইপ হয় (a -> a) -> (a -> a)
। এটি লেট-পলিমারফিজম হিসাবে পরিচিত। কীটি কোনও নির্দিষ্ট ক্রমে সীমাবদ্ধতাগুলি সমাধান করা: প্রথমে সংজ্ঞাটির সংজ্ঞা সীমাবদ্ধ করুন id
। এই হবে a -> a
। তারপরে নতুন, প্রকারের পৃথক অনুলিপি id
প্রতিটি জায়গার সীমাবদ্ধতার পরিবর্তে প্রতিস্থাপন করা যেতে পারে id
, উদাহরণস্বরূপ a2 -> a2
এবং a3 -> a3
।
অনলাইন সংস্থানগুলিতে তা সহজেই ব্যাখ্যা করা হয়নি। তারা অ্যালগরিদম ডাব্লু বা এম উল্লেখ করবেন তবে তারা কীভাবে সীমাবদ্ধতাগুলি সমাধানের ক্ষেত্রে কাজ করে না, বা কেন এটি পলিট্রোমিজম বাধা দেয় না: এই অ্যালগরিদমগুলির প্রতিটি প্রতিবন্ধকতাগুলি সমাধান করার জন্য একটি আদেশ প্রয়োগ করে।
আমি এই সংস্থানটি অ্যালগরিদম ডাব্লু, এম, এবং সীমাবদ্ধতা তৈরির সাধারণ ধারণা এবং সমস্ত একসাথে সমাধান করার পক্ষে অত্যন্ত সহায়ক বলে মনে করেছি। এটি কিছুটা ঘন তবে অনেকের চেয়ে ভাল:
http://www.cs.uu.nl/research/techreps/repo/CS-2002/2002-031.pdf
অন্যান্য অন্যান্য কাগজপত্রগুলির মধ্যে অনেকগুলি খুব ভাল:
http://people.cs.uu.nl/bastiaan/papers.html
আমি আশা করি যে এটি কিছুটা দুর্বল পৃথিবী পরিষ্কার করতে সহায়তা করে।