Wpis z mikrobloga

chcialbym nauczyc sie jakiegos jezyka #programowaniefunkcyjne dla samej przyjemnosci pisania. Bardziej sie skupiam na pisaniu w innym jezyku, ale fajnie by bylo sobie cos poklepac co jakis czas. Spodobalo mi sie pisanie w prologu, ktorym wiem ze nie jest funkcyjny, ale tez jest jezykiem dekleratywnym, wiec stad taki pomysl. Jako ze wywodze sie z srodowiska javy (chociaz teraz staram sie pisac w kotlinie) to dobrym pomyslem jest scala? Czy moze lepiej haskell, widzialem ze jest polecany jako jezyk czysto funkcyjny. Co sadzicie mireczki? #programowanie #naukaprogramowania
  • 6
@crocodiler: najlepiej pisać funkcyjnie w języku, który umiesz. Jak piszesz w javie to możesz pobawić sie vavrem, ewentualnie jest też bardziej zaawanzowany Arrow do kotlina. Scali raczej nie polecam, jeśli jej nie umiesz. Scala zachęca do pisania lekko-funkcyjnie, ale takie czyste funkcyjne programowanie ala Haskell jest bardzo skomplikowane i opiera się o zewnętrzne biblioteki i dużej ilości haki. Jak chcesz pisać czysto funkcyjnie to Haskell będzie dużo lepszy niż Scala
@crocodiler: Haskell jest fajny dla zabawy albo jak chcesz się poświęcić nauce, scala jest fajna jeśli chcesz się przesiąść na stałe albo faktycznie coś zbudować.

W haskellu łatwiej poczuć FP, bo pisanie inaczej jest trudne. W scali da się pisać pythona, rybiego, Javę i haskellu, więc żeby poczuć FP trzeba mieć materiały które pokaza Ci język od strony FP. Z jednej strony to utrudnia ale z drugiej strony krzywa wejścia jest
@crocodiler: Zacząłem się interesować FP w miarę niedawno i sam planuję za jakiś czas usiąść do Haskella. Ale najpierw chcę przebrnąć przez wykłady Bartosza Milewskiego dot. Category Theory, a potem pewnie właśnie dot. Haskella. Jestem w trakcie, i póki co mega się jaram. Fajnie jest tak uporządkować sobie wiedzę i np. zrozumieć w końcu defnicję monady, a nie tylko mniej więcej ją rozumieć na podstawie przykładów i intuicji. :)
Na początek
@crocodiler: Też polecam Haskella, żeby poczuć o co w tym programowaniu funkcyjnym chodzi. Później bedzie dużo łatwiej zrozumieć inne języki funkcyjne, bo teorię już będziesz miał opanowaną. Albo wręcz polecam język Idris, jest to język z typami zależnymi, dużo młodszy od Haskella, więc nie ma częsci zaszłości historyczny, które ma Haskell z racje tego, że istnieje już 30 lat.
@tomp3: Jezu, zaczynać FP od teorii kategorii to jak zaczynać budowanie auta to zrozumienia fizyki elementarnej. Nie twierdzę że to zła droga ale łatwo się zrazić. Można w 100% używać FP bez wchodzenia głęboko w CT. A monada to interfejs z dwoma metodami + 3 prawa te metody obowiązujące i takie zrozumienie jest wystarczające dla 99.999% praktycznych zastosowan. Oczywiście można próbować ją zrozumieć od strony CT ale to będzie duuuzo cięższe
@Krever: Wykłady Milewskiego są naprawdę na tyle proste i "łopatologiczne", że wcale nie jest to takie skomplikowane.
Dlatego też poleciłem Category Theory Crash Course, w którym Milewski po krótce omawia skąd w FP niektóre rzeczy wynikają. Ten wykład trwa 75 min. i kierowany jest do programistów Scali, choć Haskell gdzieś tam się przewija.

Co do samego FP, póki co, łatwiej mi zrozumieć wykłady Milewskiego o CT, niż np. Tagless Final