Estructuras Complejas

Embed Size (px)

Citation preview

  • 8/18/2019 Estructuras Complejas

    1/17

    Estructuras Complejas

    • Las tuplas son conjuntos o secuencias heterogéneaselementos, con una longitud (nº de elementos),predefnida que no puede variar.

    • Las listas son secuencias de elementos del mismo tipcuya longitud puede variar e incluso, no especifcarslistas infnitas.

  • 8/18/2019 Estructuras Complejas

    2/17

    !uplas " #inta$is

    (t1, t2, ... , tn)

    La tupla posee n elementos. &or tanto, si escri'imouncin que acepte como par*metro esta necesariamente la tupla actual que sirva de argum

    una llamada a la uncin de'e contar con n eleme$actamente. La signatura de la tupla es

    (tipo1, tipo2, ... , tipon)

  • 8/18/2019 Estructuras Complejas

    3/17

    Ejemplo + tuplas

    !uplassuma::(Int, Int)->Int

    suma ($, y)$-y

     cepta una tupla de dos elementos enteros

    #in tuplassuma::Int->Int->Int

    suma $ y$-y

     cepta dos n/meros enteros independientes no agrup

    estructura compleja alguna

  • 8/18/2019 Estructuras Complejas

    4/17

    Ejercicios

    0. 1ncrementa todos los elementos de una tupla de treenteros.

    2. 3ada una cantidad de segundos, devuelve la cantidhoras, minutos y segundos.

  • 8/18/2019 Estructuras Complejas

    5/17

    Listas en 4as5ell6na lista es una estructura de datos que

    representa un conjunto de datos de un mismotipo

  • 8/18/2019 Estructuras Complejas

    6/17

    3eclaracin

    • 71nt8 9epresenta una lista de enteros 7:,;, 8

    • 7Char8 9epresenta una lista de chars 7?l@,@i@,@n@,@u@,@$@8

    • 7Aool8 9epresenta una lista de valores 'ooleanos 7!rue, Balse

    • 7#tring8 9epresenta una lista de strings 7'uenasD,DnochesD8

    •7Bloat8 9epresenta una lista de otantes 72.;,;.F,:.G,H.0 8

    • 6na lista vacIa se representa 7 8 y algo importante para el malistas es separar el primer elemento (ca'eJa), del resto(cola) sgt manera($$s) . K representa la ca'eJa y $s la cola.

  • 8/18/2019 Estructuras Complejas

    7/17

    3eclaracin Listas

    • #inta$is para especifcar los datos de una lista

    • 1:2:3:[]  6so del operador (asociativo por la derecha).

    • [1,2,3]  Borma m*s cmoda y adecuada.

    • ‘a’:’b’:[] = [‘a’,’b’] = "ab"  En el caso de las cadenas decaracteres.

  • 8/18/2019 Estructuras Complejas

    8/17

    Listas

    • &ara el manejo de listas 4as5ell utiliJa la recursividad, poque de'emos sa'er detener la recursividad y para estonecesitamos especifcar un caso 'ase. &or ejemplo

    • 0.+ #umar los elementos de una lista. En este caso, el caso

    es que la lista se encuentre vacIa y devuelve >, mientras tque siga sumando los elementos con la operacin recursiv

    sumar71nt8+M1ntsumar 7 8 >sumar ($$s) $ - sumar($s)

  • 8/18/2019 Estructuras Complejas

    9/17

    Conjunto de unciones predefni

    para el manejo de listas• length xs N O/mero de elementos de xs.

    • xs ++ ys N Concatena las listas argumentos.

    • concat xss N concatena todas las listas del argumen

    • ap ! xs N aplica la uncin !  so're los elementos de

  • 8/18/2019 Estructuras Complejas

    10/17

    Listas de n/meros

    • Ootacin especial para lista de n/meros, donde la dieentre elementos consecutivos es constante• [..n] P [, +1, +2, ... ,+n]

    • [1..3] P[1,2,3]

    •[1..] P[1,2,3,,#,...] P Lista infnita

    • &ara lista donde la dierencia entre sus elementos no eutiliJa lo siguiente

    • [m,k..n]

  • 8/18/2019 Estructuras Complejas

    11/17

    Listas de Comprehensin

    • La notacin $ist %op&ehension es similar a la utiliJada enmatem*ticas para construir conjuntos, y puede ser muy /til ahora de construir ciertos tipos de listas. La sinta$is es como

    [exp&esion'calicao&,calicao&,...]

    • Con esta e$presin se genera una lista donde los elementos sla orma de expresion y cumplen las condiciones e$presadalos califcadores.

  • 8/18/2019 Estructuras Complejas

    12/17

    Listas de Comprehensin

    La e$presin puede ser cualquier e$presin v*lida y los califcadores puedde G tipos generadores, fltros y defniciones locales.

    • *ene&ao&es Qeneran un n/mero de elementos que se pueden usar en e$presin de la lista. #u sinta$is es patron

  • 8/18/2019 Estructuras Complejas

    13/17

    Ejemplos

    • 7nRnP+70..;88 M 70,2,G,:,;8

    • 7nSnRnP+70..;88 M 70,:,

  • 8/18/2019 Estructuras Complejas

    14/17

    Ejemplos

    Función que determina si um número es primo o

    divisores Int->[Int

    divisores n7dRdP+70..n8, n ?mod@ d>8

    primo Int->!ool

    primo n(divisores n70,n8)

  • 8/18/2019 Estructuras Complejas

    15/17

    Ejemplos

    • Función que devuelve el n"simo elemento de unlista

    enesimo Int->[Int->Int

    enesimo 0 (ccola)c

    enesimo n (ccola)enesimo(n+0) cola

  • 8/18/2019 Estructuras Complejas

    16/17

    Ejemplo

    • Buncin que invierte una listainvertir71nt8+M71nt8

    invertir 7878invertir (ccola)invertir cola -- 7c8

  • 8/18/2019 Estructuras Complejas

    17/17

    Ejercicios

    0. 1ncrementa todos los elementos de una lista de ent