Đối với các ngôn ngữ hỗ trợ việc lập trình và áp dụng một phần dễ dàng, có một loạt lập luận hấp dẫn, ban đầu từ Chris Okasaki:
- Đặt cấu trúc dữ liệu làm đối số cuối cùng
Tại sao? Sau đó, bạn có thể soạn các thao tác trên dữ liệu một cách độc đáo. Vd insert 1 $ insert 2 $ insert 3 $ s
. Điều này cũng giúp ích cho các chức năng trên trạng thái .
Các thư viện tiêu chuẩn như "vùng chứa" tuân theo quy ước này .
Các đối số thay thế đôi khi được đưa ra để đặt cấu trúc dữ liệu trước, vì vậy nó có thể được đóng lại, tạo ra các hàm trên cấu trúc tĩnh (ví dụ: tra cứu) ngắn gọn hơn một chút. Tuy nhiên, sự đồng thuận rộng rãi dường như là điều này ít mang lại chiến thắng, đặc biệt là vì nó đẩy bạn tới mã có dấu ngoặc đơn nặng.
- Đặt đối số khác nhau nhất cuối cùng
Đối với các hàm đệ quy, người ta thường đặt đối số thay đổi nhiều nhất (ví dụ một bộ tích lũy) làm đối số cuối cùng, trong khi đối số thay đổi ít nhất (ví dụ một đối số hàm) ở đầu. Điều này kết hợp tốt với kiểu cuối cùng của cấu trúc dữ liệu.
Bản tóm tắt của khung nhìn Okasaki được đưa ra trong thư viện Edison của anh ấy (một lần nữa, một thư viện cấu trúc dữ liệu khác):
- Áp dụng một phần : các đối số có nhiều khả năng là tĩnh thường xuất hiện trước các đối số khác để tạo điều kiện cho việc áp dụng một phần.
- Bộ sưu tập xuất hiện cuối cùng : trong tất cả các trường hợp một thao tác truy vấn một tập hợp đơn lẻ hoặc sửa đổi một tập hợp hiện có, đối số tập hợp sẽ xuất hiện sau cùng. Đây là một tiêu chuẩn thực tế cho các thư viện cơ cấu dữ liệu Haskell và tạo ra một mức độ nhất quán cho API.
- Thứ tự thông thường nhất : trong đó một phép toán đại diện cho một hàm toán học nổi tiếng trên nhiều cơ cấu dữ liệu, các đối số được chọn để khớp với thứ tự đối số thông thường nhất cho hàm.