Aktywne Wpisy
Dollcel +29

kxniec +6
Na Twitterze piszą, że ludzie, którzy są za to odpowiedzialni powinni iść siedzieć. Zgadzacie się z nimi? #lgbt #bekazlewactwa nie daje +18 bo nie ma cyckow, jest tylko suchoklates... ##!$%@?

@farmac: mówisz o takim Result, który jest applicative functor? Szczerze nie wiem, czy Rust ma coś takiego, pewnie nie
ad2: dokładnie, Validated jest applicative functorem
@farmac: przecież to jest właśnie odpowiednik rustowego
Result
. Oczywiście są drobne różnice w szczegółach, ale zasadniczo koncepcja jest ta sama. Co do kumulowania errorów to zdaje sięanyhow
to umie.@Krolik: tu chodzi o inny rodzaj. Z tego co widzę to anyhow wspiera łancuch errorów przez co dany error trzyma w sobie przyczynę. W przypadku wspomnianego
Validated
chodzi o operację łączenia błędów w taki sposób, że wystąpienie pierwszego nie prowadzi do short circuitingu tj. kolejne funkcje sprawdzające się nie odpalą.Rustowy
Result
ma metodęand_then
, która jest operacją monadyczną wymuszającąResult
i wykonuje wczesny return, korzystając zE::into()
. Dzięki temu np. można robić unię wszystkich możliwych błędów, np. przy użyciu modułuthis_error
.Jest też np. moduł
miette
(podobny do anyhow), który pozwala na tworzenie ładnych reportów z błędów.eyre
err != nil
to nie ten język, pomyliłeś z Go;co do wyjątków, to wyjątki nie działają dobrze z konstrukcjami FP (wyjątek to efekt uboczny)
this_error
pomaga stworzyć własne błędy w małych bibliotekach, gdzie chcesz użytkownikowi przekazać faktyczny typ błędu opakowany w jakiś kontekst.Biblioteka
Anyhow
albo jego następcy, czylieyre
imiette
, służą zbierania raportów z błędów i przekazywania ich użytkownikowi.