Hàm cà ri Python

Trong toán học và khoa học máy tính, currying là kỹ thuật chia nhỏ việc đánh giá một hàm có nhiều đối số thành việc đánh giá một chuỗi các hàm có một đối số. Currying cũng được sử dụng trong khoa học máy tính lý thuyết, bởi vì việc chuyển đổi nhiều mô hình đối số thành các mô hình đối số đơn lẻ thường dễ dàng hơn

Đào tạo Python trực tiếp

Thưởng thức trang này?

Nhìn thấy. Tổng quan về các khóa học Python trực tiếp

đăng ký tại đây

Thành phần chức năng

Ta xác định thành phần h của hai hàm f và g

$h[x] = g[f[x]]$

trong ví dụ Python sau

Sự kết hợp của hai chức năng là một quá trình xâu chuỗi trong đó đầu ra của chức năng bên trong trở thành đầu vào của chức năng bên ngoài

def compose[g, f]:
    def h[x]:
        return g[f[x]]
    return h

Chúng tôi sẽ sử dụng chức năng soạn thảo của chúng tôi trong ví dụ tiếp theo. Giả sử chúng ta có một nhiệt kế hoạt động không chính xác. Có thể tính toán nhiệt độ chính xác bằng cách áp dụng chức năng điều chỉnh lại các giá trị nhiệt độ. Giả sử thêm rằng chúng ta phải chuyển đổi các giá trị nhiệt độ từ độ C sang độ F. Chúng tôi có thể làm điều này bằng cách áp dụng soạn thảo cho cả hai chức năng

def celsius2fahrenheit[t]:
    return 1.8 * t + 32
def readjust[t]:
    return 0.9 * t - 0.5
convert = compose[readjust, celsius2fahrenheit]
print[convert[10], celsius2fahrenheit[10]]

ĐẦU RA

44.5 50.0

Hợp thành của hai hàm số nói chung là không giao hoán, i. e. soạn[chỉnh độ 2 độ, điều chỉnh lại] khác với soạn[điều chỉnh lại, độ 2 độ, điều chỉnh]

convert2 = compose[celsius2fahrenheit, readjust]
print[convert2[10], celsius2fahrenheit[10]]

ĐẦU RA

47.3 50.0

def celsius2fahrenheit[t]:
    return 1.8 * t + 32
def readjust[t]:
    return 0.9 * t - 0.5
convert = compose[readjust, celsius2fahrenheit]
print[convert[10], celsius2fahrenheit[10]]
4 không phải là một giải pháp cho vấn đề của chúng tôi, bởi vì nó không điều chỉnh lại nhiệt độ ban đầu của nhiệt kế mà là các giá trị Fahrenheit đã biến đổi

Chuyển đổi tiền tệ ví dụ

Trong chương về Hàm ma thuật, chúng ta đã có một bài tập về

Đào tạo Python trực tiếp

Thưởng thức trang này?

Nhìn thấy. Tổng quan về các khóa học Python trực tiếp

Các khóa học trực tuyến sắp tới

Khóa học nâng cao chuyên sâu

Python dành cho kỹ sư và nhà khoa học

đăng ký tại đây

"sáng tác" với các đối số tùy ý

Hàm

def celsius2fahrenheit[t]:
    return 1.8 * t + 32
def readjust[t]:
    return 0.9 * t - 0.5
convert = compose[readjust, celsius2fahrenheit]
print[convert[10], celsius2fahrenheit[10]]
5 mà chúng ta vừa định nghĩa chỉ có thể sao chép bằng các hàm một đối số. Chúng ta có thể tổng quát hóa chức năng của mình để nó có thể đối phó với tất cả các chức năng có thể, cùng với một ví dụ sử dụng hàm có hai tham số

def compose[g, f]:
    def h[*args, **kwargs]:
        return g[f[*args, **kwargs]]
    return h

________số 8

ĐẦU RA

Normal [healthy weight]

Hàm Currying với số lượng đối số tùy ý

Một câu hỏi thú vị vẫn còn. Làm cách nào để cà ri một hàm trên một số tham số tùy ý và không xác định?

Chúng ta có thể sử dụng một hàm lồng nhau để có thể "cà ri" [tích lũy] các đối số. Chúng ta sẽ cần một cách để nói hàm tính toán và trả về giá trị. Nếu các chức năng được gọi với các đối số, chúng sẽ được thực hiện, như chúng ta đã nói. Nếu chúng ta gọi hàm mà không có bất kỳ đối số nào thì sao? . Chúng tôi cũng có thể làm sạch danh sách với các giá trị tích lũy

Chức năng Funcools trong Python là gì?

Mô-đun Funcools là dành cho các hàm bậc cao hoạt động trên các hàm khác . Nó cung cấp các chức năng để làm việc với các chức năng khác và các đối tượng có thể gọi được để sử dụng hoặc mở rộng chúng mà không cần viết lại chúng hoàn toàn. Mô-đun này có hai lớp - một phần và một phần.

Funcools có được tích hợp trong Python không?

Mô-đun funcools, một phần của Thư viện chuẩn của Python , cung cấp các tính năng hữu ích giúp làm việc với các hàm bậc cao dễ dàng hơn [một hàm mà trả về một hàm hoặc lấy một hàm khác làm đối số.

Hàm một phần trong Python là gì?

Hàm một phần là gì? . Bạn có thể coi hàm một phần là phần mở rộng của một hàm cụ thể khác .

Singledispatch trong Python là gì?

Trình trang trí singledispatch được dùng để nạp chồng hàm . Trình trang trí biến một hàm thành một hàm chung có thể có các cách triển khai khác nhau tùy thuộc vào đối số đầu tiên của hàm.

Chủ Đề