লাম্বডাস আসলে খুব শক্তিশালী নির্মাণ যা কার্যকরী প্রোগ্রামিংয়ের ধারণাগুলি থেকে উদ্ভূত হয় এবং এটি এমন কিছু যা পাইথনের অদূর ভবিষ্যতে কোনওভাবেই সহজেই সংশোধন, পুনরায় সংজ্ঞায়িত বা মুছে ফেলা হবে না। তারা আপনাকে কোড লিখতে সহায়তা করে যা আরও শক্তিশালী কারণ এটি আপনাকে পরামিতি হিসাবে ফাংশনগুলি পাস করার অনুমতি দেয়, সুতরাং প্রথম শ্রেণির নাগরিক হিসাবে ফাংশনগুলির ধারণা।
লাম্বদাস বিভ্রান্ত হওয়ার প্রবণতা পোষণ করে না, তবে একবার যদি একটি গভীর বোঝাপড়া পাওয়া যায়, আপনি এই মতো পরিষ্কার মার্জিত কোডটি লিখতে পারেন:
squared = map(lambda x: x*x, [1, 2, 3, 4, 5])
উপরের কোডের রেখাটি তালিকার সংখ্যার স্কোয়ারের একটি তালিকা প্রদান করে। অবশ্যই, আপনি এটি এর মতো করেও করতে পারেন:
def square(x):
return x*x
squared = map(square, [1, 2, 3, 4, 5])
এটি পূর্ববর্তী কোডটি আরও সংক্ষিপ্ত, এটি স্পষ্ট এবং যদি আপনি মানচিত্র ফাংশন (বা কোনও অনুরূপ ফাংশন যা প্যারামিটার হিসাবে একটি ফাংশন নেয়) কেবলমাত্র এক জায়গায় ব্যবহার করতে চান তবে এটি বিশেষভাবে সত্য। এটি কোডটিকে আরও স্বজ্ঞাত এবং মার্জিত করে তোলে।
এছাড়াও, @ ডেভিড জাস্লাভস্কি তার উত্তরে উল্লিখিত হিসাবে, তালিকা বোধগম্যতা সবসময় যাওয়ার উপায় নয় বিশেষত যদি আপনার তালিকাটি কিছুটা অস্পষ্ট গাণিতিক উপায়ে মান পেতে হয়।
আরও ব্যবহারিক দৃষ্টিকোণ থেকে, আমার জন্য ল্যাম্বডাসের সবচেয়ে বড় সুবিধাটি হ'ল জিইউআই এবং ইভেন্ট-চালিত প্রোগ্রামিং। আপনি যদি টিনেটারের কলব্যাকগুলি একবার দেখে থাকেন তবে তারা তর্ক হিসাবে যা দেখায় সেগুলি হ'ল সেই ঘটনা যা তাদের ট্রিগার করেছিল। যেমন
def define_bindings(widget):
widget.bind("<Button-1>", do-something-cool)
def do-something-cool(event):
#Your code to execute on the event trigger
এখন যদি আপনার কিছু যুক্তি পাস করার থাকে? মাউস-ক্লিকের স্থানাঙ্কগুলি সঞ্চয় করতে 2 টি আর্গুমেন্ট পাস করার মতো সহজ কিছু। আপনি এটি সহজেই এটি করতে পারেন:
def main():
# define widgets and other imp stuff
x, y = None, None
widget.bind("<Button-1>", lambda event: do-something-cool(x, y))
def do-something-cool(event, x, y):
x = event.x
y = event.y
#Do other cool stuff
এখন আপনি যুক্তি দিতে পারেন যে এটি গ্লোবাল ভেরিয়েবলগুলি ব্যবহার করে করা যেতে পারে তবে আপনি কী মেমরির পরিচালনা এবং ফুটো সম্পর্কে উদ্বেগজনকভাবে মাথা ঘুরিয়ে দিতে চান, বিশেষত যদি গ্লোবাল ভেরিয়েবল কেবল একটি নির্দিষ্ট জায়গায় ব্যবহার করা যায়? এটি কেবল দরিদ্র প্রোগ্রামিং শৈলী হবে।
সংক্ষেপে, ল্যাম্বডাস দুর্দান্ত এবং কখনই তাকে হ্রাস করা উচিত নয়। পাইথন ল্যাম্বডাস এলআইএসপি ল্যাম্বডাসের মতো নয় (যদিও এটি আরও শক্তিশালী) তবে আপনি তাদের সাথে সত্যই প্রচুর যাদুকরী জিনিস করতে পারেন।