ল্যাম্বডা ফাংশন হলো রানটাইমে তৈরি হওয়া অ্যানোনিমাস, এক-লাইন ফাংশন। এগুলো কোনো নামের সাথে বাঁধা নয়।
সিনট্যাক্স
lambda argument: manipulate(argument)
উদাহরণ
add = lambda x, y: x + y print(add(4, 6)) # 10 # map() এর সাথে numbers = [1, 2, 3, 4] squared = list(map(lambda x: x**2, numbers)) print(squared) # [1, 4, 9, 16] # filter() এর সাথে evens = list(filter(lambda x: x % 2 == 0, numbers)) print(evens) # [2, 4] # sorted() এর সাথে pairs = [(1, 'b'), (3, 'a'), (2, 'c')] sorted_pairs = sorted(pairs, key=lambda p: p[1]) print(sorted_pairs) # [(3, 'a'), (1, 'b'), (2, 'c')]
কখন ব্যবহার করবেন
- ছোট, একবারের ফাংশনালিটি (key function, callback)।
map,filter,sorted,reduceএর সাথে।
কখন ব্যবহার করবেন না
- জটিল লজিক (নেস্টেড লুপ, কন্ডিশনাল, একাধিক স্টেটমেন্ট)।
- পুনরাবৃত্তি ব্যবহার (নাম দিয়ে ডিফাইন করুন)।
- ডকুমেন্টেশন/টাইপ হিন্ট দরকার হলে।
সতর্কতা
লুপ ভেরিয়েবল ক্যাপচার সমস্যা:
funcs = [lambda: i for i in range(3)] print([f() for f in funcs]) # [2, 2, 2] — সবি শেষ i ক্যাপচার করেছে # সমাধান: ডিফল্ট আর্গামেন্ট ব্যবহার funcs = [lambda i=i: i for i in range(3)] print([f() for f in funcs]) # [0, 1, 2]