
https://github.com/KrzaQ/AdventOfCode/blob/master/day01/main.hs
Zniszczcie mi ten kod, to dopiero drugi program w Haskellu jaki napisałem.
Zniszczcie mi ten kod, to dopiero drugi program w Haskellu jaki napisałem.
- Najlepsze
- Wszystkie komentarze


Regulamin
Reklama
Kontakt
O nas
FAQ
Osiągnięcia
Ranking
@MirkoStats: @KrzaQ2: Dokładnie. Ogólnie nie trzeba tego pisać, ale jak się gdzieś pomylisz to taka deklaracja pozwala kompilatorowi zweryfikować czy na pewno funkcja przyjmuje i zwraca to co trzeba.
W ogóle haskell to zajebisty język, polecam napisać chociaż jeden projekcik, można przekonać się jak wiele daje silne typowanie i podejście funkcyjne. Brak stanu mocno ułatwia pisanie i debugowanie kodu, potem aż chce się używać takiego podejścia
Widzę, że kolorowanie składni na pastebin wykrywa ' jako początek stringa, a to jest prim.
Nie wiem czy to zniszczenie kodu, ale użyłem pattern matchingu zamiast guardów i head/tail, dokonałem eta redukcji, gdzie się dało, pozbyłem się krotek z tej funkcji *Impl i ponieważ była dość krótka, to ją ukryłem w where zamiast trzymać na top-level. Wywaliłem zbędne importy (ghc -Wall już niczym nie pluje) i pozbyłem się kilku nawiasów. Mam nadzieję, że znaczenie programu się nie zmieniło.
Komentarz usunięty przez autora
@alkan: Nie mam cierpliwości do tutoriali, a syntax jest mi obcy, więc nic dziwnego, ƶe programuję w C++/D/czymkolwiek w Haskellu :P Dzięki za rady, jutro się przyjrzę :)
go (a:acc) (x:xs) = go (a + x : acc) xspowinno być
go acc@(a:_) (x:xs) = go (a + x : acc) xs