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
Pobierz informatyk - Pattern matching, case, if-then-else, a może guards? Jakie są różnice mi...
źródło: comment_b8r0FZMgf1ErjYMi6PTSgVdeiMOJmlyL.jpg
#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:

* źródła: https://github.com/randomseed-io/smangler
* dokumentacja: https://randomseed.io/software/smangler/
* CI: https://circleci.com/gh/randomseed-io/smangler
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 :)
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
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);;
Dostaję taki błąd:

Error: The constructor LNode expects 3 argument(s),
but is applied here to 2 argument(s)

Ktoś wie dlaczego? Unit to nie argument? Dla list leniwych coś takiego:

LCons(3, function() -> LNil);;
działało dobrze...
#
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 akurat zysk ma

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

@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 :)
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
@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ę. ;)
@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.
Zapraszam na moją prelekcję z programowania reaktywnego na AGH w niedzielę o 11:00. Budynek B1, sala H24. Będę mówił o Reactive Extensions, programowaniu funkcyjnym oraz o wzorcu observer. Prezenacja jest przygotowana w oparciu o JSa. Poziom prelekcji: dla początkujących.

#programowanie #agh #programowaniefunkcyjne #naukaprogramowania #krakow #javascript
Pobierz Viters - Zapraszam na moją prelekcję z programowania reaktywnego na AGH w niedzielę o...
źródło: comment_oEPUCmyGn6SzzNuagiI0QB5NdTDW4ujJ.jpg