Descargar los Ejercicios Haskell

Anuncio
Universidad Nacional de La Rioja
Licenciatura en Sistemas de Información
Computación II – Año 2012
Haskell - Guía de Ejercicios
1.
Definir las siguientes funciones y determinar su tipo:
a)
Cinco, que dado cualquier valor, devuelve 5.
b)
pot, que toma un entero y un número, y devuelve el resultado de elevar
el segundo a la potencia dada por el primero.
2.
3.
c)
xor, el operador de disyunción exclusiva.
d)
max3, que toma tres números enteros y devuelve el máximo entre ellos.
Dar al menos dos ejemplos de funciones que tengan cada uno de los
siguientes tipos:
a) (Int
Int)
b) Int
Bool
Int
Reescribir la siguiente definición sin usar let, where o if:
greater (x,y) = if x > y then True else False
4.
Sabiendo que el máximo de dos números se puede calcular según la
siguiente expresión:
máximo (x; y) = (x + y) + │x – y │
2
 Escribe una función máximo en Haskell que tome dos enteros y
devuelva el mayor.
 ¿Qué expresión escribirías en Haskell para calcular el máximo de
10 y 20 usando la función anterior?
 ¿Y el máximo de 10*3 y 40?
5. Escribe una función entre0y9 en Haskell que tome un entero y devuelva
Trae si está entre 0 y 9 o False en caso contrario.
1
Universidad Nacional de La Rioja
Licenciatura en Sistemas de Información
Computación II – Año 2012
6. Escribe una función es MúltiploDe3 en Haskell que tome un entero y
devuelva True si éste es múltiplo de 3 o False en caso contrario.
7. Escribe una función variaciones m n que calcule el número de variaciones
de n elementos tomados de m en m. Usa para ello la siguiente relación:
Escribe otra versión que use esta otra:
8. Escribe una función recursiva que calcule números combinatorios usando
la siguiente relación:
9. Sea la siguiente función para calcular el máximo de sus tres argumentos:
Pruébala con los siguientes valores y comprueba que devuelve el resultado
adecuado:
2
Universidad Nacional de La Rioja
Licenciatura en Sistemas de Información
Computación II – Año 2012
Encuentra un contraejemplo que demuestre que la definición no es
correcta, es decir, tres valores de los argumentos para los cuales no se
devuelva el máximo.
Redefine la función de modo que sea correcta, es decir, que devuelva el
resultado adecuado para cualquier combinación de argumentos.
10. Define tres funciones (max2, max3 y max4) para calcular el máximo de
dos, tres y cuatro enteros. (AYUDA: usa max2 para definir max3 y max4).
3
Descargar