Pytania oznaczone «fold»

W programowaniu funkcjonalnym zwinięcie, znane również jako redukcja, akumulacja lub katamorfizm, jest rodzajem funkcji wyższego rzędu, która rekurencyjnie stosuje transformację do struktury danych, „zwijając” ją do wartości sumarycznej

155
Implikacje foldr vs. foldl (lub foldl ')

Po pierwsze, Real World Haskell , który czytam, mówi, żeby nigdy nie używać foldli zamiast tego używać foldl'. Więc ufam temu. Ale jestem zamglona, gdy w użyciu foldrw porównaniu foldl'. Chociaż widzę strukturę ich działania inaczej ułożoną przede mną, jestem zbyt głupi, by zrozumieć, kiedy „co...

121
Różnica między spasowaniem a redukcją?

Próbuje dowiedzieć się F #, ale irytować, gdy próbuje odróżnić krotnie i zmniejszyć . Fold wydaje się robić to samo, ale ma dodatkowy parametr. Czy istnieje uzasadniony powód, dla którego te dwie funkcje istnieją, czy też mają one służyć osobom z różnych środowisk? (Np .: ciąg i ciąg w C #) Oto...

79
Pisanie foldl za pomocą foldr

W Real World Haskell , rozdział 4. o programowaniu funkcjonalnym : Napisz foldl z foldr: -- file: ch04/Fold.hs myFoldl :: (a -> b -> a) -> a -> [b] -> a myFoldl f z xs = foldr step id xs z where step x g a = g (f a x) Powyższy kod bardzo mnie zmylił, a ktoś o nazwisku dps...