Poate aceeasi functie sa aiba doua tipuri in doua programe ?
|
[edit] 1 . Explicatia in termeni de HaskellIn sistemul de tipuri al Haskell-ului tipul unei entitati este Ce intelegem prin cel mai mic tip ? Cel mai mic tip e inteles in sensul: Intre tipuri se stabileste deci o relatie de ordine, bazata pe generalitate Cand rezolvi (in tipuri!) o singura ecuatie cum este y f = f (y f) y :: (a->a)-> a Daca insa acea formula y f = f (y f) apare in program impreuna Deci y::((b->c)-> (b->c)) -> (b->c) in acest caz. Dintre cele doua, y :: (a->a)-> a si y::((b->c)-> (b->c)) -> (b->c) sistemul Haskell o va alege pe cea mai mica, pe cea mai particulara,pe
[edit] 2 . Explicatia prin analogieUn fenomen similar (oarecum) se intampla si in matematica valorilor intregi. Fie (in)ecuatia: x >= 0 Evident ca are un cel mai mic x ce-o satisface. Sa adaugam acum inca o restrictie: Obtin sistemul: Evident ca are acum o alta 'cea mai mica solutie'. Asa ceva se intampla si cu tipurile in Haskell, cand folosim ecuatii recursive, Pagina indexata la indexul Categories:Ro <= Inapoi la pagina principala Ro/Haskell. |

