This is an old revision of the document!
Hoogle
Hoogle este un motor de căutare pentru funcții, tipuri, clase etc. de Haskell. Puterea sa constă în abilitatea de a căuta funcții atât după nume cât și după tip.
Căutare după nume
Considerați că tocmai ați auzit de funcția Haskell scanl
, dar nu știți ce face. Căutând numele pe Hoogle (https://www.haskell.org/hoogle/?hoogle=scanl) obțineți o listă de rezultate similare; observați că hoogle face matching parțial și vă găsește și funcții numite scanl1
.
Anatomia unui rezultat
Fiecare rezultat are următoarele componente:
- pe prima linie este numele complet al funcției, urmat de tipul funcției
- click pe numele sau pe tipul funcției vă va duce la descrierea completă a acesteia din cadrul pachetului în care e definită
- următoarea linie (cu verde) conține o listă separată cu virgulă de forma “pachet modul-din-pachet” în care se găsește funcția (nu e necesar să înțelegeți bine noțiunile de “pachet” și de “modul”; vă veți uita în principal după funcții care conțin
base Prelude
) - următoarea linie conține o descriere a comportamentului funcției; butonul
+
de la începutul rândului expandează acest câmp, dacă descrierea este lungă
Citind descrierea funcției scanl
, observăm că aceasta operează ca foldl
, dar întoarce o listă cu toate rezultatele parțiale; astfel încât primul element al listei este acumulatorul, iar ultimul rezultatul final:
Prelude> foldl (+) 0 [14, 28, 2] 44 Prelude> scanl (+) 0 [14, 28, 2] [0,14,42,44] Prelude>