KrzaQ2
https://github.com/KrzaQ/AdventOfCode/blob/master/day01/main.hs

Zniszczcie mi ten kod, to dopiero drugi program w Haskellu jaki napisałem.

  • Najlepsze
  • Wszystkie komentarze
KrzaQ2
KrzaQ2 Autor
4
@MirkoStats: konkretyzacja typu z tego co rozumiem
GwnBrz
konkretyzacja typu

@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
alkan
@KrzaQ2: 27 linijek trochę trudno ocenić. :) Z natury rzeczy można się czepiać pierdółek odnośnie stylu, przy czym nawet trudno powiedzieć, na ile to obiektywne zarzuty, a na ile próba wciśnięcia Tobie mojego stylu.

toCurrentLevel x = reverse $ snd (toCurrentLevelImpl (x, []))

levelsAtIndex contents = toCurrentLevel (map parenToOffset contents)

i pozostałe miejsca tego
GwnBrz
@MirkoStats: Deklaracja funkcji.
GwnBrz
@lubii: http://pastebin.com/1HUbMPxL
Widzę, że kolorowanie składni na pastebin wykrywa ' jako początek stringa, a to jest prim.
Almagest
@KrzaQ2: http://pastebin.com/N20Ni4Vx
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.
M.....s
M.....s
@KrzaQ2: co to takie śmieszne :: oznacza
lubii
@GwnBrz: Możesz wrzucić Mireczku. Z chęcią bym zobaczył :>
GwnBrz
lubii
@GwnBrz: Może być: http://pastebin.com/ :P
lubii
@GwnBrz: Dzięki, jak będę miałch chwile to sobie przeglądne :D
GwnBrz
@lubii: Nie oceniaj za bardzo jakości kodu, bo to mój jedyny projekt w HS na dodatek pisany na dzień przed terminem :-).
lubii
@GwnBrz: Ja haskella dopiero zaczynam się uczyć, więc za wiele ocenić nie mogę :D
KrzaQ2
KrzaQ2 Autor
0
@Almagest: Jutro przeanalizuję. Thx.

@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ę :)
Almagest
@KrzaQ2: Trochę zepsułem, zamiast

go (a:acc) (x:xs) = go (a + x : acc) xs
powinno być

go acc@(a:_) (x:xs) = go (a + x : acc) xs