ল্যাম্ডা ক্যালকুলাস
ল্যাম্ডা ক্যালকুলাস (ইংরেজি Lambda Calculus বা λ-calculus) কম্পিউটারের আচরণ অধ্যয়নের জন্য জনপ্রিয় একটি গাণিতিক ব্যবস্থা। আলোন্জো চার্চ তার তাত্ত্বিক গবেষণায় গণনাযোগ্য ফাংশনের ধারণাকে এর মাধ্যমে প্রকাশ করেন। চার্চ-টুরিং প্রকল্প দাবী করে যে, যে কোন কম্পিউটিং সমস্যাকে ল্যাম্ডা ক্যালকুলাসের মাধ্যমে (বা টুরিং মেশিনের মাধ্যমে) প্রকাশ করা যায়।
সংজ্ঞাসম্পাদনা
ল্যাম্ডা ক্যালকুলাস হলো ল্যাম্ডা রাশিমালার বিজ্ঞান। ল্যাম্ডা রাশিগুলো মূলত এক প্যারামিটারবিশিষ্ট ফাংশন, যারা প্যারামিটার বা ইনপুট হিসেবে অপর কোন ল্যাম্ডা রাশি নেয় এবং এর ফলাফল বা আউটপুট আরেকটি ল্যাম্ডা রাশি। গঠনগতভাবে ল্যাম্ডা রাশিগুলো হল
- চলক - যাকে একটি অক্ষর দিয়ে প্রকাশ করা হয়, যেমন (আসলে এই চলকটিও একটি ফাংশন, সকল ল্যাম্ডা রাশিই যেহেতু ফাংশন। কিন্তু একে কারো উপর প্রয়োগ করা হয় নি)।
- প্রয়োগ - একটি ল্যাম্ডা রাশিকে আরেকটি ল্যাম্ডা রাশির উপর প্রয়োগ করা যায়। প্রয়োগ বুঝাতে যাকে প্রয়োগ করা হচ্ছে এবং যার উপর প্রয়োগ করা হচ্ছে সেই রাশি দুইটিকে পরপর লেখা হয়, যেমন , যেখানে কে এর উপর প্রয়োগ করা হচ্ছে। সম্পূর্ণ রাশিটির মান হল এই প্রয়োগের ফলাফল রাশিটি।
- বিমূর্তন - একটি ল্যাম্ডা রাশি থেকে যখন কোন একটি চলককে সরিয়ে নেয়া হয় তখন এরকম একটি ফাংশন হয় যাকে অন্য কোন রাশির উপর প্রয়োগ করলে রাশিটির মান হবে ঐ চলককে ঐ রাশিটি দিয়ে প্রতিস্থাপন করলে যেই রাশিটি পাওয়া যায়। কোন রাশি থেকে কোন চলক কে সরিয়ে নিলে যে ফাংশনটি পাওয়া যায় তাকে লেখা হয় ), একে অন্য কোন রাশি এর উপর প্রয়োগ করলে পাওয়া যায় , অর্থাৎ এ সকল কে দিয়ে প্রতিস্থাপন করলে যে রাশিটি পাওয়া যায়।
উদাহরণসম্পাদনা
- রাশিটিকে যার উপর প্রয়োগ করা হয়, রাশিটির মান তাই হয়। অর্থাৎ , ফাংশনটি অভেদ ফাংশন।
- সাধারণভাবে, কোন ফাংশন কে কোন মান এর উপর প্রয়োগ করলে ফলাফল হয় , ধরা যাক হলো ফ্যাকটোরিয়াল ফাংশন, আর এর মান , তাহলে .
প্রয়োগসম্পাদনা
গণিত, দর্শন,[১] ভাষাবিজ্ঞান,[২][৩] এবং কম্পিউটার বিজ্ঞান.[৪] ল্যাম্ডা ক্যালকুলাসের ব্যবহার বিদ্যমান।
বিটা-সংক্ষেপণসম্পাদনা
প্রতিস্থাপনের এই পদ্ধতির নাম বিটা-সংক্ষেপণ ( reduction), সবসময় যদিও রাশিটি সংক্ষিপ্ত হয় না (আকারে),
এমনকি আকারে বাড়ে এরকম উদাহরণও খুবই সহজ,
তবে গণনা বা কম্পিউটেশনের মূলমন্ত্র যে এই সংক্ষেপণেই নিহিত তাতে কোন সন্দেহ নেই। কোন সংক্ষেপণটি থামবে কোনটি থামবে না তা নির্ণয় করার কোন সাধারণ অ্যালগোরিদম নেই, যার প্রমাণ টুরিং মেশিনের থামা-না-থামা সমস্যা।
স্থির বিন্দুসম্পাদনা
গণিতে কোন ফাংশন -এর স্থির বিন্দু বলতে বোঝায় এমন কোন বিন্দু যার জন্য
- বা ল্যাম্ডা ক্যালকুলাসের রীতিতে,
যেহেতু ল্যাম্ডা ক্যালকুলাসে প্রতিটি রাশিই ফাংশন, তাই এখানে কোন ফাংশনের স্থির বিন্দু নিজেও আরেকটি ফাংশন। লক্ষ্যনীয়, এই ক্যালকুলাসে ফাংশন বাদে অন্য কোন গাণিতিক ধারণা নেই। বস্তুত, চার্চের প্রাথমিক লক্ষ্য ছিল ফাংশনের ধারণাকে গণিতের ভিত্তি হিসেবে দাঁড় করানো।
সাধারণত কোন গাণিতিক ফাংশনের স্থির বিন্দু নাও থাকতে পারে (বা থাকলেও তাকে খুঁজে বের করা একটা গাণিতিক সমস্যা), কিন্তু ল্যামডা ক্যালকুলাসে প্রতিটি রাশিরই স্থির বিন্দু আছে, এই স্থির বিন্দুটি আরেকটি ল্যাম্ডা রাশি।
প্রমাণ: একটি স্থির বিন্দু নির্ণায়ক (ইংলিশে, Fixed Point Combinator),
- রাশিটি -এর স্থির বিন্দু।
দেখা যাক,
অর্থাৎ এমন একটি ফাংশন যার উপর -কে প্রয়োগ করলে আবার ঐ ফাংশনটিই ফেরত পাওয়া যায় (স্থির বিন্দুর সংজ্ঞা)।
লক্ষ্যণীয়, এই প্রমাণটি শুধু যে স্থির বিন্দুর অস্তিত্ত্ব দেখায় তাই না, (একটি) স্থির বিন্দু নির্ণয়ও করে দেয়।
স্থির বিন্দু নির্ণায়কের মাধ্যমে ল্যাম্ডা ক্যালকুলাসে পুনরাবৃত্ত ফাংশন (Recursive function) প্রকাশ করা যায়।
টাইপ তত্ত্ব এবং ল্যামডা ক্যালকুলাসসম্পাদনা
ল্যাম্ডা ক্যালকুলাসে বিভিন্ন উপাত্ত-টাইপসম্পাদনা
কম্পিউটার প্রোগ্রামিং-এ ল্যাম্ডা ক্যালকুলাসসম্পাদনা
প্রোগ্রামিং ভাষা অনেক সময়ই ল্যাম্ডা ক্যালকুলাসের বিভিন্ন ধারণা দিয়ে প্রভাবিত হয়। প্রথম দিকের ভাষাগুলোর মধ্যে লিস্প এর গঠন ল্যাম্ডা ক্যালকুলাস প্রভাবিত। পরবর্তীকালে স্কিম (লিস্প-এর আধুনিক একটি রূপ) এবং এমএল-পরিবারের ভাষাগুলো ল্যাম্ডা ক্যালকুলাস ও টাইপ থিওরীর সম্পর্ককে কাজে লাগায়।
পিটার ল্যানডিন প্রস্তাবিত বিখ্যাত কাল্পনিক প্রোগ্রামিং ভাষা ISWIM ("If you See What I Mean") এর মূল অনুপ্রেরণা ছিল ল্যাম্ডা ক্যালকুলাস আর টুরিং মেশিনের তাত্ত্বিক অভিন্নতা।
আরও দেখুনসম্পাদনা
- জন বাকাসের টুরিং পুরস্কার ভাষণ Can Programming Be Liberated From the von Neumann Style? ওয়েব্যাক মেশিনে আর্কাইভকৃত ২১ জুন ২০০৭ তারিখে
- Why Functional Programming Matters, John Hughes এর গবেষণা নিবন্ধ
তথ্যসূত্রসম্পাদনা
- ↑ Coquand, Thierry, "Type Theory", The Stanford Encyclopedia of Philosophy (Summer 2013 Edition), Edward N. Zalta (ed.).
- ↑ Moortgat, Michael (১৯৮৮)। Categorial Investigations: Logical and Linguistic Aspects of the Lambek Calculus। Foris Publications। আইএসবিএন 9789067653879।
- ↑ Bunt, Harry; Muskens, Reinhard, সম্পাদকগণ (২০০৮), Computing Meaning, Springer, আইএসবিএন 9781402059575
- ↑ Mitchell, John C. (২০০৩), Concepts in Programming Languages, Cambridge University Press, পৃষ্ঠা 57, আইএসবিএন 9780521780988 .
গণিত বিষয়ক এই নিবন্ধটি অসম্পূর্ণ। আপনি চাইলে এটিকে সম্প্রসারিত করে উইকিপিডিয়াকে সাহায্য করতে পারেন। |