Właśnie zacząłem uczyć się Haskella, ale brak pętli jest teraz nieskończenie frustrujący. Wymyśliłem, jak pisać pętle dla funkcji. Mój problem polega jednak na tym, że chcę wyprowadzić niektóre wyniki podczas iteracji pętli. Wydaje się, że muszę użyć debugowania, aby wykonać to proste zadanie.prosta pętla Haskell
W tej chwili chciałbym po prostu docenić przykład, jak wydrukować ciąg 10 razy w strukturze głównej.
Innymi słowy, chcę zrobić to 10 razy:
main = do
putStrLn "a string"
Dzięki. Czuję, że to będzie bardzo pouczające dla mojego zadania.
Prawdziwym pytaniem, na które należy odpowiedzieć, jest to, że gdy chcesz zrobić "pętle" w języku funkcjonalnym, użyjesz rekursji. Jedyną brzydką rzeczą jest to, że jeśli spojrzysz na to: typy nie ustawiają się w linii, z powodu monadycznego konstruktora (w tym przypadku IO). Z tego powodu potrzebna jest struktura rekurencyjna, która "spiętrza" monadyczne wiązanie do samego końca. Innymi słowy, jest to po prostu rekurencja, z lekką odmianą radzenia sobie z "specjalnym" sposobem, w jaki Haskell traktuje IO. –
Nawet ja jestem początkującym dla Haskella, ale chciałbym podzielić się z wami niewielkim wglądem. Ktoś powiedział mi, że kiedy chcesz robić pętle w Haskell, pomyśl o rekurencji lub spisanych pojęciach. Nie dotyczy to Twojego pytania tutaj, ale załóżmy, że chcesz dodać wszystkie elementy na liście. Oczywiście musisz powtórzyć wszystkie elementy. Rekursja będzie działała, podobnie jak przy użyciu listy zrozumiałej. –