Sucesiones Ejemplo Cada elemento en la lista tiene asignado una posición, de manera análoga a un vector: vocales = <a, e, i, o, u> posición= 1 2 3 4 5 Los elementos repetidos pueden ser identificados por el índice letras = <a, e, h, f, u, e, m> posición= 1 2 3 4 5 6 7 Definición de una sucesión y analogía con funciones Una sucesión “x” de elementos de tipo “T” se define como: x : seq T Una sucesión también puede ser representado por una función: N⇸T con dominio: dom x: 1 ..#x Operaciones con sucesiones Operación Ejemplo Selección <a, e, i, o, u> 4 = o Concatenación <a, e, i, o, u> head head <a, e, i, o, u> = a last last <a, e, i, o, u> = u tail tail <a, e, i, o, u> = < e, i, o, u> front front <a, e, i, o, u> = <a, e, i, o > filtrado <a, e, i, o, u, i, a, o,> | {i, o} = <i, o, i, o > invertir lista rev <a, e, i, o, u> = <u, o, i, e, a> squash squash( 3..6 <1, 2, 3> = <a, e, i, o, u, 1, 2, 3> <a, e, i, o, u, k, m, p>) = <i, o, u, k> Ejemplo de modelado con sucesiones en Z Se modela una estructura de cola en Z Se define el esquema principal ___Cola [T]______ | q : seq T |______________ Se define el esquema inicial de la Cola __Iniciar_Cola___ | Cola |______________ | q = <> |______________ Se define la operación de agregar un elemento a la Cola __Insertar_ Cola[T]____ | △Cola | nuevo?: T |___________________ | q’ = q <nuevo?> |___________________ Se define la operación de eliminar y mostrar un elemento a la Cola __Borrar_ Cola[T]____ | △Cola | x!: T |___________________ | q ≠ <> | x! = head q | q’ = tail q |___________________ Se define la operación que muestra el tamaño de la Cola __Longitud_Cola[T]____ | ΞCola | tamaño!: N |___________________ | tamaño! = #q |___________________