Thành phần của f và g trông giống nhưMột mô hình phổ biến liên quan đến thành phần của chức năng ( a b -> f (g a) (g b))
f :. g = \a b -> f (g a) (g b)
là một mô hình tôi thấy rất thường xuyên trong mã của tôi. Nó tương tự như thành phần hàm unary, chỉ f
là nhị phân và tôi muốn g
áp dụng cho cả hai đối số trước khi chúng được chuyển đến f
.
Khi tôi hỏi lambdabot để chuyển đổi này để hình thành điểm miễn phí, tôi nhận được câu thần chú kỳ lạ
mà tôi không muốn có trong mã của tôi, vì vậy tôi kết thúc chỉ viết ra mô hình một cách rõ ràng .
Có cách nào được chấp nhận phổ biến để viết bộ kết hợp cho tình huống này không? Hay tôi kỳ lạ vì đã tìm thấy chính mình trong tình huống này khá nhiều?
Tôi không có ví dụ thực tế khi tôi sử dụng nó ngay bây giờ vì tôi chưa bao giờ nghĩ đến yêu cầu ở đây khi tôi cần nó, nhưng người ta có thể tưởng tượng viết công thức khoảng cách euclide rất gọn gàng với nó, như vậy:
distance = sqrt . (+) :. (^2)
'flip' có thể được loại bỏ: '(g.). f. g' –