Trên Codewars.com, tôi gặp phải tác vụ sau:
Tạo một hàm cộng
add
các số lại với nhau khi được gọi liên tiếp. Vì vậyadd(1)
nên trở về1
,add(1)(2)
nên trở về1+2
, ...
Mặc dù tôi đã quen thuộc với những điều cơ bản về Python, nhưng tôi chưa bao giờ gặp một hàm có thể được gọi liên tiếp như vậy, tức là một hàm f(x)
có thể được gọi như vậy f(x)(y)(z)...
. Cho đến nay, tôi thậm chí không chắc làm thế nào để giải thích ký hiệu này.
Là một nhà toán học, tôi nghi ngờ rằng đó f(x)(y)
là một hàm gán cho mọi x
hàm g_{x}
rồi trả về g_{x}(y)
và tương tự như vậy cho f(x)(y)(z)
.
Nếu cách diễn giải này đúng, Python sẽ cho phép tôi tạo động các hàm có vẻ rất thú vị đối với tôi. Tôi đã tìm kiếm trên web trong một giờ qua, nhưng không thể tìm thấy khách hàng tiềm năng đi đúng hướng. Vì tôi không biết khái niệm lập trình này được gọi như thế nào, tuy nhiên, điều này có thể không quá ngạc nhiên.
Bạn gọi khái niệm này như thế nào và tôi có thể đọc thêm về nó ở đâu?