W moim postrzeganiu początkujący, można wdrożyć Data.List.null
jak:Dlaczego "Data.List.null" używa "foldr"?
null [] = True
null _ = False
Patrząc rzeczywiste źródło w Hackage widzę:
null = foldr (\_ _ -> False) True
znajdę to na pewno ciekawy, mam coś, czego brakuje powinien się dowiedzieć, ale co?
jakiekolwiek powody '(_: _)' zamiast po prostu '_'? Aby wymusić błąd na "niezdefiniowanym" lub coś podobnego? – Xeo
@duplode cudownie, dziękuję, dostaję za rutynowe pomijanie deklaracji klasowych i podpisów typu =) – metaleap
@Xeo Dobre pytanie. Nie wiem, czy istnieje głębszy powód poza spójnością stylu w tym module. Wymuszenie błędu na "niezdefiniowanym" nie jest konieczne - biorąc pod uwagę, że '[]' jest dopasowywane jako pierwsze, 'null undefined' i tak zostanie wysadzone. – duplode