Email: info@jugbd.org

জাভাতে ল্যাম্বডা এক্সপ্রেশন কী (What is lambda expression in Java)?

জাভাতে ল্যাম্বডা এক্সপ্রেশন কী (What is lambda expression in Java)?


ল্যামডা টার্মটি এসেছে ল্যামডা ক্যালকুলাস (Lambda Calculus) থেকে। এটি গণিতিক যুক্তি ও কম্পিউটার সাইন্সে ব্যবহৃত এক ধরণের ফর্মাল সিস্টেম যাতে বিভিন্ন ধরণের কম্পিউটিশন বিভিন্ন ভ্যারিয়েবলের মাধ্যমে প্রকাশ করা হয়। সহজকরে বলা যেতে পারে যে, ল্যামডা এক্সপ্রেশন হলো একটি ছোট কোড যা কোনো কাজ করে থাকে। উদহারণ-

উপরের কোডটি একটি ল্যামডা এক্সপ্রেশনের উদাহরণ। এটি দেখে মনে হচ্ছে একটি মেথড কিন্তু এর কোনো নাম নেই। এতে একটি মেথডে যা কিছু থাকে তার পায় সবই রয়েছে, যেমন- প্যারামিটার, মেথড বডি। তবে এতে রিটার্ন টাইপ দেখা যাচ্ছে না। রিটার্ন টাইপ এ ক্ষেত্রে কম্পাইলার বুঝে নিতে পারে, কারণ এর রিটার্ন স্ট্যাটমেন্টে দেখা যাচ্ছে যে এটি একটি ইন্টিজার রিটার্ন করছে। তাহলে একে বলতে পারি, বলতে পারি নাম ছাড়া মেথড বা অ্যানোনিমাস মেথড।

জাভাতে ল্যামডা এক্সপ্রেশন লিখতে হলে একটি মেথডযুক্ত একটি ইন্টারফেস লাগে। এক মেথডযুক্ত ইন্টারফেসকে ফাংশনাল ইন্টারফেস(functional interface) বলে। যে সব মেথডের প্যারামিটার এই ফাংশনাল ই্ন্টারফেস সেসব মেথডে আর্গুমেন্ট হিসেবে ল্যমাডা এক্সেপ্রশন পাস করা যায়। এছাড়াও ল্যমাডা এক্সপ্রেশনকে ভ্যারিয়েবলের মত ব্যবাহর করা যায়।

উদাহরণ-

ওপরের Predicate ইন্টারফেস একটি ফাংশনাল ইন্টারফেস। এবার একে ব্যবহার করা যাক –

ওপরের মেথডটি দুটি প্যারামিটার রয়েছে, প্রথমটি একটি ইন্টিজারের লিস্ট এবং পরেরটি Predicate ফাংশনাল ইন্টারফেস। এই মেথডটি ব্যবহার করার সময় আমরা ল্যামডা এক্সপ্রেশন ব্যবহার করতে পারবো।

এখানে , input -> input % 2 == 0input -> input % 2 == 1 দুটি ল্যমাডা এক্সপ্রেশন।
এটি ব্যবহার না করলে আমাদের অ্যনােনিমাস ইনার ক্লাস লিখতে হতো যাতে অনেক বেশি কোড লিখতে হয়। উদাহরণ-

এ থেকে দেখা যাচ্ছে ল্যামডা এক্সপ্রেশন সংক্ষিপ্ত কোড লিখতে সাহায্য করে।

I [Bazlur] help junior software developers to master the top coding and collaboration skills so they get hired to work on amazing projects.

Have any Question or Comment?

Leave a Reply

Your email address will not be published. Required fields are marked *

5 mistakes Java developers make that prevent them from working on awesome projects

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 1,211 other subscribers

%d bloggers like this: