commercensa.blogg.se

Haskell programming language logo
Haskell programming language logo





haskell programming language logo haskell programming language logo

* les classes de tipus són com un mòdul genèric, amb el tipus com a paràmetre o índex, que defineix la signatura de les operacions on intervé el tipus indexat.

haskell programming language logo

classe de tipus (la interfície)class Eq t where (=) :: t -> t -> Bool - iguals (/=) :: t -> t -> Bool - desiguals - implementació per defecte x = y = not (x /= y) x /= y = not (x = y) - caldrà especificar només una de les operacions en definir la implementaciódata Bool = False | True - definició del tipus Bool- instància (la implementació) de la classe Eq per al tipus Boolinstance Eq Bool where (=) False False = True (=) True True = True (=) _ _ = False- definició del tipus (Llista a) = Nil | Cons a (Llista a)- els símbols '' designen una llistadata = - el constructor Nil es denota amb "" | a : - el constructor Cons es denota amb ':' en posició infix- * per sintaxi, si un símbol comença per ':', va infix- * tot identificador de funció es pot posar en infix si s'envolta de cometes revesses- exemple d'ús: "Eq t =>" es llegeix: per aquells tipus t tals que (Eq t)ésMembre :: Eq t => t -> -> Bool - ésMembre x = False ésMembre x (cap : cua) = x = cap || x `ésMembre` cua - notació infix amb cometes revesses Les interfícies amb un paràmetre de tipus t defineixen una partició de l'espai dels tipus en classes segons si les implementen o no, i per això s'anomenen classes de tipus. Haskell basa el polimorfisme en el requeriment d'implementació d'interfícies pels tipus dels paràmetres. El cert és que admet però permet encapsular-ne els canvis (context ST), o bé circumscriure'n els al nivell superficial (context IO). Es diu que és un llenguatge funcional pur. Haskell és un llenguatge de programació funcional estandarditzat de i avaluació tardana de les expressions (ang: lazy evaluation) en el moment que se'n demana el valor i pren el nom del matemàtic Haskell Curry.







Haskell programming language logo