E.T.S.I. Informática. Universidad de Málaga Examen Extraordinario, Diciembre de 2010 Programación Declarativa (tercer curso) (Programación Funcional) 1 2 1 2 1 3 1 4 2 5 1 6 1 7 2 Apellidos: Nombre: total 10.0 Demostrad, indicando la técnica utilizada, que el siguiente operador (++) es asociativo: [] ++ ys = ys (x : xs) ++ ys = x : (xs ++ys) . . . . 2 Definid, dando su tipo, la función f xs = [ x2 | x ← xs, even x ] sin usar listas por comprensión: f :: . . . . . 3 Sea la definición de tipo data Arbol a = H a | Arbol a :∧ : Arbol a Definid, dando su tipo, la función f rontera que aplicada a un árbol del tipo anterior, produce una lista con el valor de sus hojas recorridas de izquierda a derecha. f rontera :: . . . 4 Definid una función de plegado pliegaArbol para el tipo Arbol dando su tipo: pliegaArbol :: . . . . 5 6 . Expresad la función f rontera vı́a pliegaArbol. f rontera = pliegaArbol . . . . Definid la función aN ivel que sustituya el valor de cada hoja por el nivel en que se encuentra dicha hoja. a ÄÄ ÄÄ Ä Ä ÄÄ Ä · NNN NNN NNN NNN NN' ·= ¢¢ === ¢ == ¢ == ¢¢ Á ¡¢¢ c ·< ¢¢ <<< ¢ ¢ << ¢¢ << ¡¢¢ Á e d 1 ⇒ ÄÄ ÄÄ Ä Ä ÄÄ Ä · NNN NNN NNN NNN NN' ·> ¢¢ >>> ¢ >> ¢ >> ¢¢ Á ¡¢¢ ·= 2 ¢¢ === ¢ == ¢ == ¢¢ ¡¢¢ Á 3 3 aN ivel :: . . . . . 7 Describid una red de procesos ası́ como sus ecuaciones Haskell para computar la sucesión de Fibonacci.