Nie tak dawno temu odkryłem typ danych Natural
w base
. To powinno być zrobione (jak mi się wydaje), kiedy zamierzasz używać nieujemnego typu całkowitego. Ale nie jest do końca jasne, dlaczego powinienem preferować Natural
do Integer
. Oba typy mają dowolną precyzję, obie mają zoptymalizowaną reprezentację środowiska wykonawczego - Integer
representation i Natural
representation. Ale Natural
can throw pure exceptions po odjęciu liczb naturalnych, a to naprawdę nie dodaje więcej rodzajów bezpieczeństwa do kodu. Podczas gdy Integer
jest bardziej popularny we wszystkich pakietach.Kiedy wybrać "Naturalny" przez "Integer" w Haskell?
Kiedy i dlaczego mam korzystać z Natural
?
To może być nieco opiniotwórcze, ale moim kryterium byłoby: "jeśli wolisz błąd wykonania, aby uzyskać wynik negatywny, wybierz opcję" Naturalne "" – chi
@chi Zgadzam się. Chociaż mamy 'negate' i' (-) 'wewnątrz klasy' Num', niewiele możemy zrobić, aby nie dopuścić do odejmowania. – Shersh