Próbowałem dowiedzieć się, jak zrobić coś wzdłuż liniiCzy to możliwe, aby zrobić listę funkcji i powrócić do funkcji, która jest ich kompozytowy
compositeFunctions :: [(a -> a)] -> (a -> a)
myślałem mogłem użyć foldr
stale spasuj listę funkcji, ale nie mogę niczego wymyślić.
Jesteś na dobrej drodze! rozważ 'foldr :: (x -> y -> x) -> x -> [y] -> x', teraz zamień' a -> a' na 'y'. Czym musi być 'x'? Jaka jest dobra domyślna wartość parametru typu "x"? Jaka powinna być wartość typu 'x -> y -> x'? – rampion
'foldMap' (jak w' compositeFunctions = appEndo. FoldMap Endo') przekazuje _intent_ lepiej niż 'foldr', jak sądzę. (I jest tylko garstką znaków dłuższych niż 'foldr (.) Id') – Alec
Używanie' foldMap' jest bardzo niejasne, imo. – augustss