Haskellben lehet ezt használni vagy nem ?
data Colour = Red | Green
Használhatom-e ezt vagy nem :
Ha igen miért igen és ha nem miért nem ?
Red > Green





Magától nem rendezi az az adatokonstruktorokkal kifejezett alternatívákat. Vagy explicit meg kell adni a rendezést, vagy pedig jelezni kell, hogy az ember az automatikus rendezést szeretné:
data Color = Red | Green deriving (Eq, Ord)
az Ord egy típusosztály, afféle ,,interfész'', mely a rendezhetőséget, és a <, <=, >, >, compare metódus meglétét, definiáltságát jelzi. A deriving kulcssszóval kérhetjük ennek egy automatikus felállítását (a fordító ekkor az egyes alternatívák sorrendje szerint generálja a rendezést: a Red lesz a kisebbik, a Green a nagyobbik).
Az Eq egy másik típusosztály, amely ez egyenlőség létét jelenti. (Pl függvények közt nem lehet egyenlőséget belső eszközökkel deklarálni -- a fordító nem képes a végtelen behelyettesíthetőséget felhasználói definicióként megragadni ebben az értelemben.) Természetesen számokra, boolokra, egyszerű algebrai típusokra könnyen definiálható az egyenlőség fogalma értelemszerűen.
Itt e példában most ez a kérdéskör nem fontos, annyit kell csak tudni, hogy az Eq azért kell hogy ott álljo, mert az Ord előfeltétele az, hogy ami Ord, az egyben Eq is legyen. Itt tehát egyszerűen azt kérjük a fordítótól, hogy az alapértelmezett módon vezesse be automatikusan az egyenlősség fogalmát (a Red magával egyenlő, a Green is magával egyenlő, és semmi más közt nincs egyenlőség), és aztán szintén alapértelmezett módon bóvítse ez ki rendezéssé is (kövesse az alternativák sorrendjét).
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!