Có rất nhiều hướng dẫn về cách thực hiện các hàm và nhiều câu hỏi ở đây tại stackoverflow. Tuy nhiên, sau khi đọc The Little Schemer, một số sách, hướng dẫn, bài đăng trên blog và chủ đề stackoverflow tôi vẫn không biết câu trả lời cho câu hỏi đơn giản: "Điểm cà ri là gì?" Tôi hiểu làm thế nào để curry một chức năng, chỉ cần không phải là "tại sao?" đằng sau nó.Sử dụng thực tế các chức năng đã kết hôn?
thể ai đó hãy giải thích cho tôi những ứng dụng thực tế của chức năng cà ri (bên ngoài của ngôn ngữ mà chỉ cho phép một đối số cho mỗi chức năng, nơi mà sự cần thiết của việc sử dụng currying là tất nhiên khá hiển nhiên.)
chỉnh sửa: Taking vào tài khoản một số ví dụ từ TLS, lợi ích của
(define (action kind)
(lambda (a b)
(kind a b)))
là những gì như trái ngược với
(define (action kind a b)
(kind a b))
Tôi chỉ có thể xem thêm mã và không có thêm tính linh hoạt ...
Sử dụng 4 thụt lề, khi định dạng mã của bạn. Xem [Trợ giúp chỉnh sửa] (http://stackoverflow.com/editing-help). –
Hai định nghĩa, bạn cung cấp, không sử dụng currying, chúng ta đang nói về, đây chỉ là ví dụ về các cách khác nhau để định nghĩa một hàm. Xem liên kết đến câu hỏi khác trong nhận xét cho câu trả lời của tôi. –
Thú vị, nguyên nhân 'cà ri' chính xác là cách TLS gọi nó ... Trích dẫn: "' (lambda (a) (lambda (x) (eq? X a))) '... Có phải đó là 'Curry-ing?' ... [Có.] " –