Tôi thường thấy mình cần một loại mở rộng reduce
bất cứ khi nào tôi phải xử lý một mục vào thời gian (như giảm), tích lũy một số loại kết quả (như giảm) nhưng thực hiện quá trình dựa trên mục trước của chuỗi (không giống như giảm).Clojure: giảm với ba tham số
Ví dụ (một cách ngớ ngẩn), thêm 1 vào bộ tích lũy nếu cả mục hiện tại và mục trước đó đều là số chẵn và trừ một trong số chúng là số lẻ. Đây chỉ là một trường hợp ngu ngốc, nhưng tôi đã thường xuyên gặp phải vấn đề này. Tôi thường làm một vectơ làm bộ tích lũy, để mục đầu tiên là tập hợp thực và phần thứ hai là mục trước. Điều này không phải là rất thanh lịch và chắc chắn tiết.
Có chức năng cốt lõi nào để giúp đỡ trong những trường hợp đó không? Cách thành ngữ nhất để giải quyết vấn đề này là gì? Cảm ơn
hãy viết ví dụ như thế này. đầu vào: xxx đầu ra: yyy – blueiur