Tôi đã cố gắng tìm ra cách để làm điều gì đó dọc theo dòng củaCó thể mất một danh sách các hàm và trả về một chức năng mà là tổng hợp
compositeFunctions :: [(a -> a)] -> (a -> a)
Tôi đã suy nghĩ của họ, tôi có thể sử dụng foldr
liên tục gấp danh sách các chức năng trên, nhưng tôi không thể tìm ra bất cứ điều gì.
Bạn đang đi đúng hướng! xem xét 'foldr :: (x -> y -> x) -> x -> [y] -> x', bây giờ thay thế' a -> a' cho 'y'. 'X' cần phải là gì? Giá trị mặc định tốt cho tham số kiểu 'x' là gì? Giá trị của loại 'x -> y -> x' cần phải làm gì? – rampion
'foldMap' (như trong' compositeFunctions = appEndo. FoldMap Endo') chuyển tải _intent_ tốt hơn 'foldr' tôi nghĩ. (Và chỉ một số ít ký tự dài hơn 'foldr (.) Id') – Alec
Sử dụng' foldMap' rất tối nghĩa, imo. – augustss