ฟังก์ชั่น Lambda ในภาษา Python

Lambda function หรือ anonymous function เป็นฟังก์ชันที่ไม่ต้องนิยามโดยใช้ def และไม่มีชื่อ โดยมักใช้เมื่อต้องการส่งฟังก์ชันเป็น argument หรือใช้งานฟังก์ชันเพียงครั้งเดียวโดยไม่ต้องกำหนดชื่อฟังก์ชันขึ้นมาใหม่

Lambda function ใน Python เป็นฟังก์ชันแบบไม่มีชื่อ (anonymous function) ที่สามารถถูกสร้างขึ้นและใช้งานได้ในตำแหน่งที่ไม่ต้องการฟังก์ชันชื่อ

รูปแบบของ Lambda function คือ:

lambda arguments: expression

โดย arguments เป็นตัวแปรที่ฟังก์ชัน Lambda รับเป็น input และ expression คือสิ่งที่ Lambda function จะทำงานกับ arguments นั้น ๆ แล้วส่งค่าออกมา

เมื่อเราสร้าง Lambda function เสร็จแล้ว สามารถเก็บไว้ในตัวแปรได้เช่นเดียวกับฟังก์ชันทั่วไป โดยเราสามารถเรียกใช้งาน Lambda function ได้โดยการใช้ตัวแปรที่เก็บ Lambda function และใช้วงเล็บเปิดและปิดตามด้วยการส่งค่า arguments ที่ต้องการให้แก่ Lambda function

ฟังก์ชั่น Lambda เป็นวิธีที่สะดวกและง่ายในการสร้างฟังก์ชันขนาดเล็ก ที่ไม่จำเป็นต้องกำหนดชื่อฟังก์ชัน และสามารถใช้งานในที่ที่ต้องการฟังก์ชั่นชั่วคราวที่ไม่จำเป็นต้องเก็บไว้เป็นตัวแปร

Lambda ใช้งานได้หลายสถานการณ์ เช่น เป็น parameter ของฟังก์ชั่น, เป็น return value ของฟังก์ชั่น หรือใช้กับฟังก์ชัน built-in ของ Python เช่น filter(), map(), และ reduce() ซึ่งจะช่วยให้เขียนโค้ดได้สั้นและอ่านง่ายขึ้น

นอกจากนี้ การใช้ Lambda ยังช่วยในการลดการใช้งานหน่วยความจำและเวลาในการเขียนฟังก์ชันที่ไม่จำเป็นต้องใช้ตัวแปรเพิ่มเติม และช่วยในการเขียนโค้ดแบบ functional programming ซึ่งเป็นรูปแบบการเขียนโค้ดที่เป็นที่นิยมในปัจจุบัน ซึ่งสามารถทำให้โค้ดมีความสั้นและอ่านง่ายขึ้นได้เช่นกัน

ตัวอย่าง การใช้งาน Lambda function:

square = lambda x: x**2
print(square(5))  # 25

is_even = lambda x: x % 2 == 0
print(is_even(4))  # True
print(is_even(5))  # False

add = lambda x, y: x + y
print(add(3, 4))  # 7

จากตัวอย่างข้างต้น ได้สร้าง Lambda function ที่ชื่อ square ซึ่งรับ argument เดียวและให้ผลลัพธ์เท่ากับ argument ยกกำลังสอง ในการเรียกใช้งาน Lambda function นี้ เราสร้างตัวแปร square และกำหนดค่าให้เท่ากับ Lambda function นั้น ๆ และเรียกใช้งานตัวแปร square โดยใส่ argument เข้าไป ในที่นี้คือ 5

อีกตัวอย่างหนึ่งคือ is_even ซึ่งเป็น Lambda function ที่รับ argument เดียวและตรวจสอบว่า argument นั้นหาร 2 ลงตัวหรือไม่ ถ้าหารลงตัว ก็จะส่งค่าออกมาเป็น True ถ้าหารไม่ลงตัวก็จะส่งค่าออกมาเป็น False

ในตัวอย่างสุดท้าย เราสร้าง Lambda function ชื่อ add ซึ่งรับ arguments 2 ตัว และรีเทิร์นผลรวมของ arguments ทั้ง 2

การใช้งานฟังก์ชั่น Lambda นั้นจะช่วยให้เราเขียนโค้ดได้อย่างกระชับและสะดวกมากขึ้น โดย Lambda จะช่วยลดจำนวนบรรทัดของโค้ดและช่วยเขียนโค้ดได้อย่างสั้นกะทัดรัด ในภาษา Python ฟังก์ชั่น Lambda มักถูกนำมาใช้เมื่อเราต้องการสร้างฟังก์ชั่นที่มีลักษณะง่าย ๆ เช่น ฟังก์ชั่นที่รับค่าตัวเลขสองตัวแล้วคืนค่าผลบวกของตัวเลขสองตัวนั้น

ตัวอย่าง สามารถเขียนในรูปแบบ Lambda ได้ดังนี้

sum = lambda x, y: x + y

จาก sum = lambda x, y: x + y นี้ ได้ใช้ lambda เพื่อสร้างฟังก์ชันที่มีพารามิเตอร์ x และ y และทำการบวก x กับ y ด้วยเครื่องหมาย + โดย Lambda จะคืนค่าของผลบวกเหล่านี้ ซึ่งเราสามารถเรียกใช้ฟังก์ชัน lambda โดยการเรียกตัวแปร sum แล้วส่งตัวเลขสองตัวให้กับ sum ได้ดังนี้

result = sum(2, 3)
print(result)

ผลลัพธ์ที่ได้จะเป็น 5 ซึ่งเป็นผลบวกของ 2 และ 3

 

ตัวอย่าง การใช้งาน Lambda function ใน Python คือการสร้าง Lambda function ที่รับพารามิเตอร์เป็นตัวเลข และมีการคำนวณเป็นสองเท่าของตัวเลขนั้น ดังนี้

double = lambda x: x * 2

ในที่นี้ Lambda function ชื่อ double รับค่า x เป็นพารามิเตอร์และคืนค่าเป็นผลคูณของ x กับ 2 โดยไม่ต้องใช้ชื่อฟังก์ชัน หลังจากสร้าง Lambda function เสร็จเรียบร้อยแล้ว เราสามารถเรียกใช้ Lambda function ได้โดยใช้ตัวแปร double และการส่งค่า arguments ที่ต้องการให้คำนวณ

result = double(5)
print(result)  # 10

ในที่นี้ตัวแปร result จะได้ค่าเท่ากับผลลัพธ์ของการเรียกใช้งาน double(5) ซึ่งก็คือ 10 ตามที่ Lambda function double ได้กำหนดให้คืนค่ากลับมา