Czytałem Real World Haskell i zbliżam się do końca, ale kwestia stylu mnie dręczy z operatorami (.)i ($). Kiedy piszesz funkcję będącą kompozycją innych funkcji, piszesz ją tak: f = g . h Ale kiedy zastosujesz coś na końcu tych funkcji, piszę to w ten sposób: k = a $ …
Próbuję zrozumieć, co robi operator kropki w tym kodzie Haskella: sumEuler = sum . (map euler) . mkList Cały kod źródłowy znajduje się poniżej. Moje zrozumienie Operator kropki przyjmuje jako dane wejściowe dwie funkcje sumoraz wynik map euleri wynik mkListfunkcji. Ale sumczy funkcja nie jest argumentem funkcji, prawda? Więc co …
Oto kod, który gdzieś natknąłem, ale chcę wiedzieć, jak to działa: findIndices :: (a -> Bool) -> [a] -> [Int] findIndices _ [] = [] findIndices pred xs = map fst (filter (pred . snd) (zip [0..] xs)) Dane wyjściowe: findIndices (== 0) [1,2,0,3,0] == [2,4] , gdzie pred wynosi …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.