Está en la página 1de 8

Sandra Fierro

Identificadores:

Haskell consta de una letra seguida por 0 o ms letras, dgitos, subrayados y comillas simples. Palabras reservadas: case, data, deriving, do, else, if, import, let, module, of, then, type, where
Comentarios: {- comentario ms de una lnea -}

--Comentario de una lnea

La letra inicial del identificador distingue familias de identificadores: empiezan por


Mayscula los tipos y constructores de datos Minscula los nombres de funcin y variables

Bool ej.: (&&) (||)


Char ej.: a Int ej.: 12

Integer (similar int, pero es ilimitado)


Float ej.: 1.25 Double (n real, mayor rango, ms preciso que

Float) Cadenas ej.: hola

Funciones:

nombre_funcin::tipoArg1-> tipoArg2->tipoArgN ej.: esTres:: integer->Bool Tuplas: ej.:(2 5 +1, 4 >0) es de tipo (Int, Bool). Listas: [1,3,10] = 1:[3,10] = 1:(3:[10]) = 1:(3:(10:[])) []=lista vaca [1,2..10]=[1,2,3,4,5,6,7,8,9,10] Definidas por el usuario: Das= Lunes | Martes | Mircoles | Jueves |Viernes

Expresiones Lambda

Sintaxis: \<Patrones atmicos>-><expre> Ejemplo: (\x y->x + y) 2 3 5 Expresiones case Sintaxis: case expresin of patrn -> resultado patrn ->resultado Ej.: fun x = case x of 0 -> "zero 1 -> "one otherwise -> "many"

Sintaxis:

f x1 xk = r Las variables x1, ..., xk son distintas entre s y las nicas que aparecen en la parte derecha r Ej.: doble x triple x seisveces x fact n = x+x -- primitiva = 3*x --primitiva =doble(triple x)func. def. por usuario = if n==0 then 1 else -- recursividad n*fact (n-1)

También podría gustarte