Tôi muốn viết một hàm point-miễn phí trong Haskell, để giữ cho mọi thứ đơn giản cho phép nói rằng tôi muốn thực hiện chức năng này:Dot nhà điều hành trong Haskell với đa số chức năng
maxmin :: Ord a => a -> a -> a -> a
maxmin a b c = max a (min b c)
tôi có thể cải thiện điều này để
maxmin a b = (max a) . (min b)
nhưng có cách nào để loại bỏ a và b không?
Điểm miễn phí là mã * phong cách * và chỉ nên sử dụng như vậy khi cải thiện khả năng đọc; các trường hợp ký hiệu điểm miễn phí biên dịch khác nhau (vì nội tuyến) không phải là điều bạn phải lo lắng về tổng thể (suy nghĩ về điều đó sau khi lược tả). Trong trường hợp của bạn, tôi muốn nói rằng không có điểm không giúp đỡ; đổi tên 'maxmin' thành' constrainTo' sẽ là một sự thay đổi nhiều biểu cảm hơn, ví dụ. – David