2013-01-17 13 views
27

Czy firma Haskell podaje jakiekolwiek stałe dla znajomości limitów Int? Rozumiem, że Int jest zależny od platformy, ale mimo to chciałbym go wykorzystać i zainicjować pewne wartości na skrajnościach w moim konkretnym przypadku. Równoważniki stałe (na przykład) w C będą INT_MAX i INT_MIN.Czy Haskell zapewnia stałe min/maks dla zakresu Int?

+16

@ Shang odpowiedź jest dobra. Ale pamiętaj, że możesz być lepiej używając czegoś w rodzaju 'Maybe Int' zamiast' Int' z pewną wartością domyślną. – shachaf

+12

"** Inicjalizuj ** niektóre wartości na krańcach" ?? Czy na pewno zrozumiałeś, o czym jest funkcjonalny styl programowania? – leftaroundabout

+4

Istnieje kilka uzasadnionych zastosowań maksymalnych i minimalnych granic dla 'Int', ale bardzo niewielu. Jak powiedział @shachaf, prawdopodobnie chcesz 'Maybe Int'. – augustss

Odpowiedz

46

Maksymalne i minimalne granice dla różnych typów są dostępne za pośrednictwem klasy typu Bounded przy użyciu wartości minBound i maxBound.

Wartości są polimorficzne w zależności od kontekstu, w którym się znajdują, więc w niektórych przypadkach może być konieczne jawne wskazanie typu, jeśli kompilator nie może go wywnioskować. Na przykład.

x = minBound :: Int