Documentos de Académico
Documentos de Profesional
Documentos de Cultura
P ag. 1
n Funcional Programacio 1. Denir las siguientes funciones: seven, sign, absolute, and,or,not,xor, dividesTo,
que dado cualquier valor, devuelve 7. que dado un entero devuelve 1 si es positivo, -1 si es negativo y 0 si es cero (usando guardas y sin usarlas). la funci on valor absoluto (usando sign y sin usarla). las operaciones booleanas est andar, sin utilizar las funciones predenidas en el Hugs. toma dos n umeros y dice si el primero divide al segundo (sugerencia: utilizar la funci on mod, que devuelve el resto de la divisi on entera). toma dos n umeros y dice si el primero es m ultiplo del segundo. toma un n umero y un par de n umeros, y verica si el primero es divisor com un de los otros dos. toma un n umero y un par de n umeros, y verica si el primero es m ultiplo com un de los otros dos. toma un par ordenado, y devuelve un par ordenado con sus componentes en orden inverso.
2. Reescribir las siguientes funciones sin el uso de let, where o if then else cuando sea posible. (a) f x = let (y,z) = (x,x) in y (b) greaterThan (x,y) = if x > y then True else False (c) f (x,y) = let z = x + y in g (z,y) where g (a,b) = a - b 3. Redenir la funci on power4 de dos formas diferentes power4 x = let sqr y = y * y in sqr (sqr x) 4. Denir la funci on fib que calcula el n- esimo t ermino de la sucesi on de Fibonacci, denida esta u ltima por: T (0) = T (1) = 1 T (n) = T (n 1) + T (n 2) 5. Enumere algunas propiedades deseables en los programas. 6. Seg un su apreciaci on, qu e caracteriza al paradigma Funcional? 7. Utilizar el int erprete Hugs para implementar y probar las funciones denidas. P ag. 2
n Funcional Programacio 8.
Implemente una funci on random que dado un intervalo, retorne un n umero aleatorio que est e dentro del mismo.
Ejercicios complementarios 9. Un a no es saur onico si sus u ltimas dos cifras son divisibles por 4 y distintas a 00; en caso contrario s olo se considera saur onico si es divisible por 400. Ejemplos: 1996 es saur onico porque 96 es divisible por 4 y es distinto a 00 2003 no es saur onico porque 03 no es divisible por 4 1900 no es saur onico porque termina en 00 y no es divisible por 400 2000 es saur onico porque termina en 00 y es divisible por 400 Denir una funci on que determine si un a no es saur onico o no. 10. Denir la funci on sort3, que recibe tres n umeros y los retorna ordenados (el primero menor o igual que los dem as; el segundo menor o igual que el tercero). Implemente al menos tres soluciones distintas.
P ag. 3