Jak czytać zagnieżdżone list comprehensions

Każdy kto programuje w Pythonie z pewnością szybko przekonał się do zalet tzw. list comprehensions. Ten sposób tworzenia list jest nie tylko zgodny z filozofią języka, ale przede wszystkim zgrabny, krótki i czytelny. Czasami jednak zdarza się spotkać konstrukcje, które na pierwszy rzut oka wcale takie czytelne nie są. Przykładem niech będzie fragment, na który natknąłem […]

Read More

Funktory w Haskellu

Jak możemy przeczytać w artykule Brenta Yorgeya opublikowanym w magazynie The Monad.Reader, „funktor to najbardziej podstawowa i wszechobecna klasa w Haskellu„. [1] Często okazuje się jednak, że zrozumienie koncepcji funktorów i związanych z nimi zawiłości nie jest takie proste dla osób, wkraczających w świat programowania funkcyjnego. O ile elementy języka, które zazwyczaj poznaje się wcześniej […]

Read More

Modularyzacja w Prologu

Modularyzacja to coś oczywistego z perspektywy współczesnych języków programowania. Wiadomo przecież, że wrzucanie całego kodu to jednego pliku to coś, co sprawdza się jedynie na etapie programistycznej piaskownicy lub naprawdę niewielkich skrypcików. Dla wielu osób zaskoczeniem może być więc fakt, że nie wszystkie implementacje Prologa w ogóle wspierają modularyzację. Wynika to z prostego powodu – […]

Read More

Pattern matching w Pythonie

W dniu dzisiejszym ukazała się kolejna (szósta już) wersja alpha Pythona 3.10, wprowadzając tym samym dość przełomową dla tego języka funkcjonalność – dopasowywanie wzorca (ang. pattern matching). Specyfikacja tej funkcjonalności zawarta jest w PEP 634, zaś dokumenty PEP 635 oraz PEP 636 zawierają odpowiednio uzasadnienie dokonanych zmian oraz tutorial dla programistów. W tym wpisie przyjrzymy […]

Read More