Edición de «Práctica 0 (Paradigmas)»

De Cuba-Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces publica los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 137: Línea 137:


c. todosIguales :: [Int] → Bool que indica si una lista de enteros tiene todos sus elementos iguales.   
c. todosIguales :: [Int] → Bool que indica si una lista de enteros tiene todos sus elementos iguales.   


  limpiar:: String -> String -> String
  limpiar:: String -> String -> String
Línea 142: Línea 143:
   
   
  limpiar "susto" "puerta" == "pera"
  limpiar "susto" "puerta" == "pera"
   
   
  difPromedio :: [Float] -> [Float]
  difPromedio :: [Float] -> [Float]
Línea 148: Línea 151:
   
   
  difPromedio [2,4,6] == [-2,0,2]
  difPromedio [2,4,6] == [-2,0,2]
   
   
  todosIguales :: [Int] -> Bool
  todosIguales :: [Int] -> Bool
Línea 164: Línea 168:
  todosIguales2 [1,1,1] == True
  todosIguales2 [1,1,1] == True
  todosIguales2 [1,2,1] == False
  todosIguales2 [1,2,1] == False
== Ejercicio 5 ==
Dado el siguiente modelo para  ́arboles binarios:
data AB a = Nil | Bin (AB a) a (AB a)
definir las siguientes funciones: 
a. vacioAB :: AB a → Bool que indica si un  ́arbol es vac ́ıo (i.e. no tiene nodos). 
b. negacionAB :: AB Bool → AB Bool que dado un  ́arbol de booleanos construye otro formado por la negaci ́on de cada uno de los nodos. 
c. productoAB :: AB Int → Int que calcula el producto de todos los nodos del  ́arbol. 
data AB a = Nil | Bin (AB a) a (AB a)
vacioAB :: AB a -> Bool
instance Eq a => Eq (AB a) where
Nil == Nil = True
(Bin r1 c1 l1) == (Bin r2 c2 l2) = l1==l2 && c1==c2 && r1==r2
_==_ = False
vacioAB Nil = True
vacioAB _ = False
negacionAB :: AB Bool -> AB Bool
negacionAB Nil = Nil
negacionAB (Bin l c r) = Bin (negacionAB l) (not c) (negacionAB r)
productoAB :: AB Int -> Int
productoAB Nil = 1
productoAB (Bin l c r) = (productoAB l) * c * productoAB r
productoAB l * c
arbol1 = Bin Nil True Nil
arbol2 = Bin (Bin Nil False Nil) True ( Bin Nil False Nil)
arbol42 = Bin (Bin Nil 7 Nil) 2 ( Bin Nil 3 Nil)
vacioAB Nil == True
vacioAB arbol1 == False
negacionAB Nil == Nil
negacionAB arbol1 == (Bin Nil False Nil)
negacionAB arbol2 == (Bin (Bin Nil True Nil) False ( Bin Nil True Nil))productoAB arbol42 == 42
Ten en cuenta que todas las contribuciones a Cuba-Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Cuba-Wiki:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)