Pattern matching, case, if-then-else, a może guards? Jakie są różnice między tymi konstrukcjami i czym należy kierować się przy ich wyborze? Na przykładzie silni omawiam dziś zagadnienie struktur kontrolnych w Haskellu - Pięć sposobów na... silnię w Haskellu!

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#programowanie #programowaniefunkcyjne #haskell #informatyka
informatyk - Pattern matching, case, if-then-else, a może guards? Jakie są różnice mi...

źródło: comment_b8r0FZMgf1ErjYMi6PTSgVdeiMOJmlyL.jpg

Pobierz
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@informatyk: 5 sposobów na silnię i 4 z nich uwalisz uruchamiając z wartością -1 ( ͡° ͜ʖ ͡°)

a poważnie, może warto jednak było wziąć jakiś mniej trywialny przykład niż silnię, klepaną w artykułach o językach funkcyjnych do absolutnego znudzenia?
  • Odpowiedz
#clojure #biblioteka #spec #prefix #suffix #infix #substring #deps #programowaniefunkcyjne

Popełniłem małą bibliotekę do Clojure na własny użytek, bo potrzebowałem szybkiego listowania przedrostków, wrostków i przyrostków w łańcuchach znakowych + paru innych funkcji.

Przy okazji funkcje są wyposażone w specyfikacje z użyciem spec i testy (z użyciem Midje), a zależności określone w deps.edn:

*
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

6 miesięcy temu pytałem was czy czytacie materiały o programowaniu po polsku. Dzisiaj mogę z radością oznajmić że udało mi się zakończyć tłumaczenie i książka Programowanie Funkcyjne dla Śmiertelników ze Scalaz jest oficjalnie dostępna. Wersje elektroniczne można za darmo znaleźć tutaj. Jest też szasna, że na konferencjach będzie można znaleźć wersje drukowane.

Tłumaczenie jest amatorskie i darmowe, tak samo jak i oryginalna książka, więc wszelka niekonstruktywna krytyka będzie radośnie ignorowana :)
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@aseeon_: O faktycznie, dzięki! Poszukam/podpytam jak to zrobił. Możliwe też, że tłumaczenie dziedziczy licencje oryginału i nie da się jej sutawić. Zobaczymy.
  • Odpowiedz
Programowanie funkcyjne, pochodne, kwadraty, funkcje, listy, trwałe struktury danych, przejrzystość referencyjna, leniwe sekwencje i typy pierwszoklasowe w kolejnym fascynującym, pełnym smakowitego, programistycznego mięska wpisie z bloga Wujka Boba Martina: https://michalkulinski.blogspot.com/2019/03/podstawy-programowania-funkcyjnego-epizod-2.html

#programowanie #clojure #programowaniefunkcyjne #naukaprogramowania #programista15k #wujekbob
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@coola: ej dobry suchar:

I już widzę tych wściekłych na mnie purystów języków funkcjonalnych, wściekłych za to, że to kompletnie nieodpowiedni sposób definicji języka funkcyjnego
  • Odpowiedz
Mam taki typ:

type 'a lBT = LEmpty | LNode of 'a * (unit -> 'a lBT) * (unit -> 'a lBT);;
i tworzę takie drzewo:

let exlBST = LNode(3, function() -> LEmpty, function() -> LEmpty);;
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki, czytacie czasami materiały z #programowanie po polsku? Albo nawet lepiej, może ktoś w ramach magisterki czy innego doktoratu robił badania na ten temat?

Ostatnio ukazała się dosyć ciekawa książka o #programowaniefunkcyjne i autor szuka tłumaczy z różnych krajów. Teoretycznie mógłbym się tego podjąć ale nie dość że jest to dość trudne to jeszcze bardzo pracochłonne.

Książka jest za free więc zysk tylko z wersji drukowanych i darowizn, ale

Jak często czytasz o programowaniu po polsku?

  • Prawie nigdy (junior) 17.9% (20)
  • Prawie nigdy (mid) 21.4% (24)
  • Prawie nigdy (senior) 12.5% (14)
  • Czasami (junior) 23.2% (26)
  • Czasami (mid) 12.5% (14)
  • Czasami (senior) 8.0% (9)
  • Prawie zawsze (junior) 2.7% (3)
  • Prawie zawsze (mid) 1.8% (2)
  • Prawie zawsze (senior) 0% (0)

Oddanych głosów: 112

  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Krever: Dziwią mnie te wyniki. Sam programuję zawodowo, mam dużo znajomych(od juniorów, po seniorów), którzy programują i o ile chodzi o dokumentacje, artykuły, prace naukowe, czy książki niedostępne w Polskiej wersji (lub kiedy np. nowe wydanie nie jest tłumaczone na j. polski) to faktycznie większość czyta po angielsku. Natomiast jeżeli jest dostępna literatura, która jest aktualna to zauważyłem, że większość zdecydowanie wybiera jednak polskie edycje :)
  • Odpowiedz
Po dłuższej przerwie wreszcie udało mi się dokończyć rozpoczęty ponad 3 miesiące temu wpis na moim blogu - Jak napisać korektor pisowni.

Są to bardziej zapiski dokumentujące proces implementacji przeze mnie własnych wersji (jednej w Pythonie - z lekkimi przystosowaniami do języka polskiego, a drugiej w OCamlu) korektora pisowni zaproponowanego przez Petera Norviga, niż jakiś kompletny tutorial, pokazujący krok po kroku "jak to zrobić". Sądzę jednak, że opis problemów, jakie napotkałem i
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@informatyk o stary, to jest świetny wpis, miło czyta się taką analizę a nie milionowe "how to..." nienadające się do czegokolwiek. Chętnie będę obserwował dalsze wpisy
  • Odpowiedz
  • 1
@TheDraom: dzięki, cieszę się że taka forma przypadła do gustu. Blog traktuję przede wszystkim jako motywację do własnego rozwoju, stąd wrzucam tam głównie rzeczy związane z tym czego niedawno się dowiedziałem, czego się uczę itd., a to sprawia, że raczej trudno wpaść w nauczycielską nutę. ;)
  • Odpowiedz
@maniserowicz: Jakiś czas temu dopiero zawodowo wszedłem w świat programowania i widzę w otoczeniu, że jest straszny boom na programowanie funkcyjne, Panie Macieju, mógłby Pan pokrótce opowiedzieć dlaczego tak jest?
  • Odpowiedz
@maniserowicz: Dzięki za ciekawe informacje.

Chciałbym w końcu (ogólnie, nie chodzi mi o Twoje artykuły) zobaczyć gdzieś kurs / tutorial od początku do końca jakiejś apki napisanej funkcyjnie. Wszędzie są tylko wyrywki, proste przykłady, teoria.
  • Odpowiedz