Nevesített típusok

Nevesített típusok

Tetszőleges típust névvel láthatunk el a type kulcsszó segítségével.

Példák:

type Name = String
type Complex = (Double, Double)

Feladat: Prelude.String [*]

Definiáljuk a String típust mint karakterek listáját!


Test>

Feladat: Évek

Definiáljuk a Year típust mint egész számot!


Test>

Feladat: Sakktábla mezők

Definiáljuk a sakktábla mezőit mint karakter + egész párokat!


Test>

Paraméterezett nevesített típusok [*]

A nevesített típusnak lehet paramétere is:

type Two a = (a, a)

Ezután igaz:

Test>
Test>

A jobb oldal szabad változóinak szerepelnie kell a paraméterek között. Viszont lehet olyan paraméter, amelyet nem használunk fel:

Feladat: Két mélységű listák [*]

Definiáljuk a két mélységű listákat!


Test>
Test>

Feladat: Kétdimenziós pontok

Definiáljuk a kétdimenziós pontokat általában!


Test>
Test>

Feladat: Feltételek [*]

Definiáljuk a feltételeket (logikai értékű függvényeket)!


Test>
Test>