This shows you the differences between two versions of the page.
pp:23:laboratoare:haskell:clase [2023/04/23 12:06] bot.pp created |
pp:23:laboratoare:haskell:clase [2023/04/25 09:07] (current) bot.pp |
||
---|---|---|---|
Line 317: | Line 317: | ||
Cele spuse mai sus dezvăluie o caracteristică interesantă a sistemului de tipuri Haskell. De exemplu, o funcție în Haskell este ceva de tipul ''%%a -> b%%'', i.e. ia o valoare de tip ''%%a%%'' si produce o valoare de tip ''%%b%%''. | Cele spuse mai sus dezvăluie o caracteristică interesantă a sistemului de tipuri Haskell. De exemplu, o funcție în Haskell este ceva de tipul ''%%a -> b%%'', i.e. ia o valoare de tip ''%%a%%'' si produce o valoare de tip ''%%b%%''. | ||
- | ''%%BST%%'' se comportă ca o funcție, dar la nivel de tip. Constructorii de tip ''%%BST%%'' iau ca argument un tip de date și produce alt tip de date. De exemplu, ''%%BST Int%%'' ia tipul Int ca argument și produce un tip de date care reprezintă un arbore de întregi. Spunem că ''%%BST%%'' este un **tip de ordin superior** (higher-order type) - în cazul de față este un **constructor de tip unar**. | + | ''%%BST%%'' se comportă ca o funcție, dar la nivel de tip. Constructorii de tip ''%%BST%%'' iau ca argument un tip de date și produc alt tip de date. De exemplu, ''%%BST Int%%'' ia tipul Int ca argument și produce un tip de date care reprezintă un arbore de întregi. Spunem că ''%%BST%%'' este un **tip de ordin superior** (higher-order type) - în cazul de față este un **constructor de tip unar**. |
- | Pentru a afla informații despre clase în ''%%ghci%%'' se poate utiliza comanda ''%%:info <typeclass%%'' unde typeclass este clasa despre care dorim să aflăm informații. | + | Pentru a afla informații despre clase în ''%%ghci%%'' se poate utiliza comanda ''%%:info <typeclass>%%'' unde typeclass este clasa despre care dorim să aflăm informații. |
Mai multe detalii [[http://www.haskell.org/tutorial/classes.html|aici]] | Mai multe detalii [[http://www.haskell.org/tutorial/classes.html|aici]] | ||
Line 325: | Line 325: | ||
===== Resurse ===== | ===== Resurse ===== | ||
- | * [[https://github.com/cs-pub-ro/PP-laboratoare/blob/master/haskell/clase/haskell-cheatsheet-3.pdf|Cheatsheet]] | + | * [[https://github.com/cs-pub-ro/PP-laboratoare/raw/master/haskell/clase/haskell-cheatsheet-3.pdf|Cheatsheet]] |
* [[https://ocw.cs.pub.ro/courses/_media/pp/23/laboratoare/haskell/clase-schelet.zip|Schelet]] | * [[https://ocw.cs.pub.ro/courses/_media/pp/23/laboratoare/haskell/clase-schelet.zip|Schelet]] | ||
* [[https://ocw.cs.pub.ro/courses/_media/pp/23/laboratoare/haskell/clase-solutii.zip|Soluții]] | * [[https://ocw.cs.pub.ro/courses/_media/pp/23/laboratoare/haskell/clase-solutii.zip|Soluții]] | ||