• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Haskell - wnioskowanie typów

0 głosów
73 wizyt
pytanie zadane 16 listopada 2018 w Inne języki przez k222 Nałogowiec (26,730 p.)

Cześć, mam nadzieję, że znajdzie się tu ktoś kto zna się troszkę na Haskellu, bo mam pytanie do wnioskowania typów w tym języku, mianowicie, przy zabawie z prostymi funkcjami napisałem takie coś:

f9 x   |  x > 0         = "True"      
       |  x < 0         = "False"
       |  otherwise     = "Coś ty tu wpisał :O "

niby prosta funkcja (jej sens nie jest ważny), następnie poleceniem :t sprawdziłem jej tym, i ukazało mi sie:

f9 :: (Ord a, Num a) => a -> [Char]

i tu się pojawia moje pytanie - dlaczego mamy  tam krotkę?

Wygląda to tak, jakby jedna zmienna miała dwa typy. Według mnie powinno być bardziej coś typu:

f9 :: Ord a => a -> [Char]

ponieważ po prostu porównujemy zmienną x i to jest jedyna rzecz którą z nią robimy.

1 odpowiedź

0 głosów
odpowiedź 16 listopada 2018 przez adrian17 Mędrzec (199,840 p.)

Z haskella jestem słaby, ale...

Samo `Ord a` wymaga tylko, żeby typ pył porównywalny z samym sobą. Na przykład

f x y = x > y
f :: Ord a => a -> a -> Bool

Tutaj chcemy coś konkretniejszego - porównywać z liczbą. Tak więc typ powinien dodatkowo wyglądać jak liczba. Stąd wymóg na Num i Ord.

Podobne pytania

0 głosów
1 odpowiedź 110 wizyt
pytanie zadane 13 grudnia 2018 w Inne języki przez k222 Nałogowiec (26,730 p.)
+1 głos
0 odpowiedzi 62 wizyt
pytanie zadane 21 marca 2018 w Inne języki przez littlerunaway Obywatel (1,800 p.)
+1 głos
1 odpowiedź 1,917 wizyt
pytanie zadane 9 kwietnia 2015 w Inne języki przez niemiec77 Początkujący (270 p.)
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

66,495 zapytań

113,266 odpowiedzi

239,870 komentarzy

46,633 pasjonatów

Przeglądających: 263
Pasjonatów: 4 Gości: 259

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...