ในCodewars.comฉันพบงานต่อไปนี้:
สร้างฟังก์ชัน
add
ที่บวกตัวเลขเข้าด้วยกันเมื่อเรียกต่อเนื่องกัน ดังนั้นadd(1)
ควรกลับ1
,add(1)(2)
ควรจะกลับ1+2
...
ในขณะที่ฉันคุ้นเคยกับพื้นฐานของ Python แต่ฉันไม่เคยพบฟังก์ชันที่สามารถเรียกต่อเนื่องกันได้เช่นฟังก์ชันf(x)
ที่สามารถเรียกได้ว่าเป็นf(x)(y)(z)...
ไฟล์. จนถึงตอนนี้ฉันยังไม่แน่ใจว่าจะตีความสัญกรณ์นี้อย่างไร
ในฐานะที่เป็นนักคณิตศาสตร์ผมสงสัยว่าf(x)(y)
เป็นหน้าที่ที่ได้รับมอบหมายในทุกx
ฟังก์ชั่นg_{x}
และจากนั้นผลตอบแทนและเช่นเดียวกันสำหรับg_{x}(y)
f(x)(y)(z)
หากการตีความนี้ถูกต้อง Python จะอนุญาตให้ฉันสร้างฟังก์ชันแบบไดนามิกซึ่งดูน่าสนใจมากสำหรับฉัน ฉันค้นหาเว็บในช่วงหนึ่งชั่วโมงที่ผ่านมา แต่ไม่พบผู้นำในทิศทางที่ถูกต้อง เนื่องจากฉันไม่รู้ว่าแนวคิดการเขียนโปรแกรมนี้เรียกว่าอย่างไรจึงอาจไม่น่าแปลกใจนัก
คุณเรียกแนวคิดนี้ว่าอย่างไรและฉันจะอ่านเพิ่มเติมเกี่ยวกับแนวคิดนี้ได้ที่ไหน