Theo hiểu biết của tôi, các hàm một phần là các hàm mà chúng ta có được bằng cách chuyển ít tham số hơn cho một hàm so với dự kiến. Ví dụ: nếu điều này là hợp lệ trực tiếp trong Python:
>>> def add(x,y):
... return x+y
...
>>> new_function = add(1)
>>> new_function(2)
3
Trong đoạn trích trên, new_function
là một phần chức năng. Tuy nhiên, theo Haskell Wiki , định nghĩa của chức năng một phần là
Hàm một phần là hàm không được xác định cho tất cả các đối số có thể có của loại đã chỉ định.
vì vậy, câu hỏi của tôi là: "chức năng một phần" nghĩa là gì?
partial
thực hiện một phần ứng dụng , trong khi Haskell thực hiện điều đó một cách tự động. Mục wiki đề cập đến các chức năng một phần , là một thuật ngữ từ toán học.
add 3 5
không phải là một ứng dụng chức năng duy nhất. Điều này đầu tiên áp dụng add
cho 3 để có được một chức năng mới, sau đó được áp dụng cho 5.
partial
phương thức là một tuyên bố chuyển tiếp của một phương thức riêng được triển khai tùy chọn ở nơi khác trong cơ sở mã dự án.
new_function = functools.partial(add, 1)