Type Class

Klasa Typów (ang. Type Class) jest to cecha (ang. trait która:
  • nie ma wewnętrznego stanu
  • ma parametr typu
  • ma przynajmniej jedną metodą abstrakcyjną (kombinator prymitywny (primitive combinator))
  • może mieć metody uogólnione (kombinatory pochodne (derived combinators))
  • może rozszerzać inne typeklasy
Definicja za Programowanie Funkcyjne dla Śmiertelników ze Scalaz

Funktor, Monada i Aplikatywa

9 minut(y)

Trzy klasy typów Funktor, Monada i Aplikatywa są to prawdopodobnie trzy najpopularniejsze klasy typów do przetwarzania danych.

Testy jednostkowe i mockowanie wyścia-wejścia w Haskellu

8 minut(y)

Testy pisać trzeba, to oczywiste. Pozostaje pytanie jednostkowe czy integracyjne? Ja na razie zdecydowałem się na jednostkowe, co postawiło mnie przed kolejnym pytaniem jak przetestować kod używający wyjścia-wejścia w Haskellu? To znowu sprowadza się do pytania jak zamockować monadę IO w Haskellu?

Sześć rodzajów polimorfizmu - polimorfizm jakiego nie znamy z OOP

10 minut(y)

Wydawałoby się, że trzy rodzaje polimorfizmu, jakie są spotykane w obiektowych językach programowania i które opiswałem w artykule Sześć rodzajów polimorfizmu - polimorfizm jaki znamy z OOP, są wszystkim czego potrzebujemy do szczęścia, żeby pisać zwięzły kod. Czasem pojawi się tylko jakiś zgrzyt, gdzie trzeba zaimplementować wzorzec wizytator lub fakrykę.

Haskell i monady - czy monady są jeszcze egzotyczne?

13 minut(y)

Język programowania Haskell to ma straszną opinię. Że trzeba rozumieć co to teoria kategorii albo monady. Tylko że teoria kategorii odnosi się do wszystkich języków programowania. A monady są podobno możliwe nawet w Bashu. Gdy tak mówię lub piszę, ludzie mi nie wierzą. Ostatnio z tego powodu dostałem kod w Haskellu, który wyglądał mniej więcej tak:

Kolejny język programowania - język wszystkomający

9 minut(y)

Język wszystkomający jest to język w którym można programować imperatywnie, funkcyjnie, obiektowo, proceduralnie oraz strukturalnie. Prawdopodobnie jest to język zły do nauki jako pierwszy język programowania. Może też być złym językiem do nauki pojedynczych paradygmatów programowania, jeśli nie mamy odpowiedniej dyscypliny. Jeśli jednak mamy tę dyscyplinę jest to genialny język do nauki nowych paradygmatów programowania. Po co uczyć się nowych paradygmatów programowania starałem się wyjaśnić w artykule Kolejny język programowania do nauki - paradygmaty programowania.

Który język programowania wybrać na początek - język natywny

12 minut(y)

Wiele osób pyta się, który język programowania wybrać na początek jako pierwszy język do nauki. Wiele jednak zależy od tego do czego chcemy użyć tego języka programowania. Dlatego wybrałem zwycięzców w czterech kategoriach: dynamicznie typowany język skryptowy ogólnego przeznaczenia statycznie typowany język korporacyjny używany do pisania długowiecznych aplikacji klasy enterprise język fullstackowy, który można używać do pisania frontendu i backendu szybki język natywny działający bez maszyny wirtualnej i interpretera

Scala - No Universal Equality

6 minut(y)

Ostatnim błędem zgłaszanym w kodzie projektu resentiment przez scalafix jest “No Universal Equality” wynikający z użycia operatora ==.

Wróć do góry ↑