เรียนเขียนโปรแกรมง่ายๆกับ Expert Programming Tutor วันนี้เราจะมาเข้าสู่บทLambda
ฟังก์ชั่นแลมบ์ดาเป็นฟังก์ชั่นที่ไม่ระบุตัวตนเล็กๆฟังก์ชั่นแลมบ์ดาสามารถรับอาร์กิวเมนต์จำนวนเท่าใดก็ได้ แต่สามารถมีได้เพียงนิพจน์เดียวเท่านั้น
ตัวอย่างเช่น
และเราสามารถย่อนิพจน์แลมบ์ดา (Lambda expressions) ให้กลายเป็นฟังก์ชันขนาดเล็กลงเป็นอาร์กิวเมนต์ได้ดังนี้
lambda arguments: expression |
ตัวอย่าง
x = lambda a: a + 10 |
ผลลัพธ์
15 |
ฟังก์ชั่นของแลมบ์ดาสามารถรับอาร์กิวเมนต์ได้จำนวนเท่าใดก็ได้
ตัวอย่าง
ฟังก์ชั่นแลมบ์ดาที่เพิ่มค่าอาร์กิวเมนต์ a ด้วยอาร์กิวเมนต์ b และพิมพ์ผลลัพธ์
x = lambda a, b : a * b |
ผลลัพธ์
30 |
ตัวอย่าง
ฟังก์ชั่นแลมบ์ดาที่สรุปผลรวม a, b และ c และปรินต์ผลลัพธ์
x = lambda a, b, c: a + b + c |
ผลลัพธ์
13 |
ทำไมเราต้องใช้ Lambda Function
ผลของแลมบ์ดาจะแสดงได้ดีขึ้นเมื่อนักเรียนใช้มันเป็นฟังก์ชั่นนิพจน์ภายในฟังก์ชั่นอื่นสมมติว่านักเรียนมีนิยามฟังก์ชันที่ใช้อาร์กิวเมนต์หนึ่งตัวและอาร์กิวเมนต์นั้นจะถูกคูณด้วยจำนวนที่ไม่รู้จัก
ตัวอย่าง
def myfunc(n): mydoubler = myfunc(2) |
ผลลัพธ์
|
หรือใช้นิยามฟังก์ชันเดียวกันเพื่อสร้างฟังก์ชันที่เพิ่มจำนวนสามเท่าที่นักเรียนใส่ค่ามา
def myfunc(n): |
ผลลัพธ์
33 |
หรือใช้นิยามฟังก์ชันเดียวกันเพื่อสร้างทั้งสองฟังก์ชันในโปรแกรมเดียวกัน
def myfunc(n): mydoubler = myfunc(2) print(mydoubler(11)) |
ผลลัพธ์
|
ใช้ฟังก์ชั่นแลมบ์ดาเมื่อต้องการใช้งานในช่วงเวลาสั้น ๆ เจอกันในบทต่อไปครับ
แปลจากhttps://www.w3schools.com/python/python_lambda.asp
Tag ที่น่าสนใจ: python lambda programming functions expressions arguments examples multiplication programming_techniques nested_functions functional_programming
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com