การใช้ lambdas หรือที่เรียกว่าฟังก์ชันที่ไม่ระบุตัวตนคุณสามารถสรุปvolume
ฟังก์ชันภายในmake_cylinder_volume_func
บรรทัดเดียวได้ ไม่แตกต่างจากคำตอบของÓscarLópez แต่อย่างใดการแก้ปัญหาโดยใช้ lambda ยังคงมีความหมายว่า 'ใช้งานได้ดีกว่า'
นี่คือวิธีที่คุณสามารถเขียนคำตอบที่ยอมรับโดยใช้นิพจน์แลมบ์ดา:
import math
def make_cylinder_volume_fun(r):
return lambda h: math.pi * r * r * h
จากนั้นเรียกตามที่คุณต้องการฟังก์ชั่น curried อื่น ๆ :
volume_radius_1 = make_cylinder_volume_fun(1)
volume_radius_1(1)
=> 3.141592653589793