Przejdź do treści

fp-wroc #21 Efekty algebraiczne

Zdjęcie użytkownika Maciej Talaśka
Hosted By
Maciej T. i Mateusz G.
fp-wroc #21 Efekty algebraiczne

Szczegóły

Efekty algebraiczne i ich handlery

Często wymienianą zaletą programowania funkcyjnego jest to, że czyste obliczenia (czyli takie, w których nie plączą się pod nogami efekty takie jak mutowalny stan, wyjątki, wejście/wyjście, wielowątkowość itp.) zapewniają kod bardziej modularny, z mniejszą liczbą błędów, łatwiejszy do testowania i wielokrotnego użycia. Ale nie oszukujmy się: w prawdziwym kodzie musimy i chcemy używać efektów. A skoro tak, to róbmy to z głową. Liczni mądrzy ludzie od wielu dekad próbują zaproponować nam różne sposoby panowania nad efektami tak, by mieć swobodę wyrazu nie tracąc zalet programowania funkcyjnego, np. niesławne monady w Haskellu.

Ta prezentacja będzie o nowym pomyśle: efektach algebraicznych.
Pozwalają one swobodnie definiować własne efekty, w naturalny sposób
programować z wieloma efektami jednocześnie (bez potrzeby niewygodnych i nieczytelnych transformatorów monad) i to wszystko w klasycznym ML-owym stylu (bez potrzeby pisania w imperatywnym "monadycznym" stylu). Nic dziwnego, że efekty algebraiczne są intensywnie badane i rozwijane na całym świecie, a i my na Uniwersytecie Wrocławskim mamy w tym swój skromny udział.

Prezentacja nie wymaga wcześniejszej wiedzy o efektach, a już na pewno nie trzeba wiedzieć nic o monadach, ani znać się na egzotycznych teoriach matematycznych.

Bio:
Maciej jest pracownikiem naukowym w Instytucie Informatyki Uniwersytetu Wrocławskiego. Wcześniej pracował na Uniwersytecie w Leuven (Belgia), a jeszcze wcześniej na Uniwersytecie w Oksfordzie (Anglia). Jego ulubionym językiem programowania jest Haskell, ale z nadzieją (i pewną dozą zniecierpliwienia) czeka na nadejście kolejnej generacji funkcyjnych języków programowania.

Photo of Functional Programming Wroclaw group
Functional Programming Wroclaw
Zobacz więcej wydarzeń
Instytut Informatyki Uniwersytetu Wrocławskiego sala 25
ul. Fryderyka Joliot-Curie 15 · Wroclaw