2016.11.26 05:55
nulle wyższego rzędu

Najpierw przypomnienie: kiedy w bazie danych wartość jakiegoś pola jest nieznana, jest tam null. Na przykład jeśli w tabeli ze skoczkami narciarskimi jest kolumna "wzrost", a dla jakiegoś skoczka wzrost nie jest znany, w tym polu tego rekordu jest null. Null oznacza "nie wiadomo". W tym przypadku: "nie wiadomo, ile wynosi wzrost tego skoczka". A teraz dalej: jeśli mam w XML-u zrzut fragmentu bazy danych, ale z jakiegoś powodu w tym zrzucie nie mam niektórych pól, to takie pole, którego nie ma w XML-u, jest niewiadomą innego rodzaju niż zwykły null. Jest niewiadomą, która oznacza "nie wiem, jaka jest wiedza bazy danych o wzroście tego zawodnika; nie wiem nawet, czy baza danych wie, jaki jest ten wzrost". Więc do reprezentowania tej niewiadomej potrzebny jest inny null - nazywam go sobie nullem poziomu drugiego. Można też wyobrazić sobie sytuacje, kiedy potrzebowalibyśmy nulli jeszcze wyższych poziomów.
Kilka lat temu myślałem o tym teoretycznie. Teraz mam taką sytuację naprawdę, w jednym narzędziu, które piszę.

komentarze:
2020.05.21 19:02 Piotrek

W Javie jest do tego Optional, a w Haskellu Maybe.


2021.01.14 08:34 Piotrek

Ludzie mówią, że właśnie dlatego lepiej mieć w języku Optional (zwany w Haskellu "Maybe") niż typy które są nullable (na przykład typ "int?").



ksywa:

tu wpisz cyfrę cztery: (tu wpisz cyfrę cztery: (to takie zabezpieczenie antyspamowe))

komentarze wulgarne albo co mi się nie spodobają będę kasował


powrót na stronę główną

RSS