U2 FUNCIONES HASKEL DAVID GALVEZ
LAZARO CARDENAS
CARRERA: INGENIERIA EN SISTEMAS
COMPUTACIONALES
MATERIA: PROGRAMACIÓN LÓGICA Y FUNCIONAL
UNIDAD 2: FUNCIONES DE HASKELL
SEMESTRE: 8
ALUMNO:
LUIS DAVIDGALVEZ ESPINOSA
CD. LAZARO CARDENAS, MICHOACAN 12 DE MARZO DE 2015
FUNCIONES DEFINIDAS POR HASKELL
Toma una lista y devuelve su cabeza. La cabeza de una lista es básicamente el
primer elemento.1.-head [5,4,3,2,1]
Toma una lista de números y devuelve su producto.
2.-product [6,2,1,2]
Aplana una lista de listas en una simple lista con los mismos elementos.
3.- concat ["David "," Galvez ","Espinosa "]
Funciones propias
Función compara dos números y muestra el mayor, si son iguales regresa un error
4.- maximo :: (Integer, Integer) -> Integer
maximo (a,b) | a>b = a
| b>a = b
| otherwise =error "Los dos argumentos son iguales"
Función que ingresa un número y te regresa si ese número es par
5.- todosPares :: [Int] -> Bool
todosPares [] = True
todosPares (x:xs) = even x && todosPares xs6.- Función que ingresas un número y determina si es positivo o negativo
esPositivo :: Int -> Bool
esPositivo x = x>0
FUNCIONES MEJORADAS
1.- david :: String -> String
david "" = "¡Una cadenavacía!"
david all@(x:_)= "La primera letra de " ++ all ++ " es " ++ [x]
2.- p :: [Integer] -> Integer
p []
=1
p (x:xs) = x * product xs
main :: IO ()
main = do
putStrLn "Ingrese la lista;";
xs <-readLn;
print (p xs)
3.- con :: [String] -> String
con []
= []
con (x:xs) = x ++ concat xs
main :: IO ()
main = do
putStrLn "Ingrese la lista;";
xs <- readLn;
print (con xs)
4.- maximo :: (Integer,Integer) -> Integer
maximo (a,b) | a>b = a
| b>a = b
| otherwise = error "Los dos argumentos son iguales"
main :: IO ()
main = do
putStrLn "Ingrese los numeros";
x <- readLn;
print (maximo x)
5.-todosPares :: [Int] -> Bool
todosPares [] = True
todosPares (x:xs) = even x && todosPares xs
main :: IO ()
main = do
putStrLn "Ingrese una lista;";
xs <- readLn;
print (todosPares xs)
6.- esPositivo...
Regístrate para leer el documento completo.