Ejercicios Haskell

Páginas: 20 (4834 palabras) Publicado: 6 de agosto de 2015
Inform´atica – Pepe Gallardo – Universidad de M´alaga

1

Inform´atica – Haskell – Matem´aticas – Curso 2004-2005
Pepe Gallardo – Universidad de M´alaga

Tema 1
1.1 Consid´erense las siguientes definiciones de funciones:
inc
:: Float → Float
inc x = x + 1.0
f
:: Float → Float → Float
f x y = x + (4.0 ∗ x )
´ por cero, la reduccion
´ de la exSabiendo que si se intenta realizar una division
´acaba con un error, reduce la expresion
´ f (inc 5.0) (7.0/0.0) utilizando
presion
´ perezosa.
orden aplicativo, orden normal y evaluacion
1.2 Sean las siguientes definiciones
doble
:: Integer → Integer
doble x = x + x
cuadruple
:: Integer → Integer
cuadruple x = doble (doble x )
´ cuadruple (1 + 2) utilizando orden aplicativo, orden norReduce la expresion
´ perezosa.
mal y evaluacion

Tema 2
2.1 Encaso de que sean correctas, ¿Cu´al es el tipo de las siguientes expresiones?.
Si no son correctas indica porqu´e.
(True, True)
(True, False)
(True, a , False)
(True, ( a , False))
isUpper
isUpper a
(1 > 7, even 4, isUpper a )
[ a , b , c ]
”abc”
[True, a , False]
([True, False], a )

2
´
´ la siguiente
2.2 Sabiendo que el m´aximo de dos numeros
se puede calcular segun
´
expresion

aximo(x, y)=

(x + y) + |x − y|
2

´ m´a ximo en Haskell que tome dos enteros y devuelva
escribe una funcion
el mayor.
´ escribir´ıas en Haskell para calcular el m´aximo de 10 y 20
¿Qu´e expresion
´ anterior?
usando la funcion
¿Y el m´aximo de 10*3 y 40?
´ que has definido en el apartado anterior, define una funcion
´
2.3 Usando la funcion
en Haskell que devuelva el mayor de tres enteros. Escribe otra quedevuelva el
mayor de cuatro.
´ entre0y9 en Haskell que tome un entero y devuelva True
2.4 Escribe una funcion
si est´a entre 0 y 9 o False en caso contrario.
´ esM u
´ ltiploDe3 en Haskell que tome un entero y devuelva
2.5 Escribe una funcion
´
True si e´ ste es multiplo
de 3 o False en caso contrario.
´ coseno en Haskell que tome un a´ ngulo en grados sexage2.6 Escribe una funcion
simales ydevuelva su coseno.

Inform´atica – Pepe Gallardo – Universidad de M´alaga

3

Tema 3
3.1 ¿Cu´ales de los siguientes patrones y argumentos unifican?. ¿Qu´e valores se
´
asocian a cada variable en caso de que haya unificacion?
Patr´
on
0
x
(x : ys)
(x : ys)
(x : ys)
(1 : xs)
(1 : xs)
(x : : : ys)
[]
[x ]
[1, x ]
[x , y]
x@ y
a@(x : b@(y : zs))
(n + 2)
(n + 1)

Argumento
0
0
[1, 2]
”sam”
[ ”sam”]
[1,2]
[2, 3]
[1, 2, 3, 4, 5, 6]
[]
[ ”sam”]
[1, 2]
[1]
0
[1, 2, 3, 4]
6
0

´
3.2 Escribe una funcion
descomponer :: Integer → (Integer , Integer , Integer )
que a partir de una cantidad de segundos, devuelva las horas, minutos y segundos equivalentes. Por ejemplo:
? descomponer 7390
(2, 3, 10) :: (Integer , Integer , Integer )
ya que 7390 segundos son dos horas, tres minutos y diez segundos. Da dosversiones, una usando where y otra usando let in.
´ incTupla3 que incremente todos los elementos de una tupla
3.3 Define una funcion
de tres enteros. Por ejemplo
? incTupla3 (1, 5, 8)
(2, 6, 9) :: (Integer , Integer , Integer )
´ incLista que incremente todos los elementos de una lista
3.4 Define una funcion
de enteros. Por ejemplo

4

? incLista [1, 5, 8]
[2, 6, 9] :: [Integer ]
´ que determinesi un ano
˜ es bisiesto. Un ano
˜ es bisiesto si
3.5 Escribe una funcion
´
´ a la regla anterior es que
es multiplo
de 4 (por ejemplo 1984). Una excepcion
˜ multiplos
´
´ son bisiestos cuando a su vez son multiplos
´
los anos
de 100 solo
de
400 (por ejemplo 1800 no es bisiesto, mientras que 2000 lo ser´a):
? esBisiesto 1984
True :: Bool
´ recursiva que, usando sumas y restas (sin usar lasfuncio3.6 Escribe una funcion
´ de dos enteros.
nes predefinidas div y mod ), devuelva el resto de la division
´ recursiva que, usando sumas y restas (sin usar las funcio3.7 Escribe una funcion
nes predefinidas div y mod ), devuelva el cociente que se obtiene al dividir dos
´
numeros
enteros.
´ recursiva sumDesdeHasta que devuelva el sumatorio desde
3.8 Escribe una funcion
un valor entero hasta otro:...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ejercicios Haskell
  • Haskell
  • Haskell
  • haskell
  • programas de haskell
  • Resumen Haskell
  • Haskell
  • Haskell

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS