Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type Cajon = (String,Float)
- type Bidon = (Int,Float)
- type Helado = (String, Int, Float)
- longitud :: [a] -> Float
- longitud [] = 0
- longitud (x:xs) = 1 + longitud xs
- vocales :: String -> Float
- vocales [] = 0
- vocales (x:xs)
- | x == 'a' = 1 + vocales xs
- | x == 'e' = 1 + vocales xs
- | x == 'i' = 1 + vocales xs
- | x == 'o' = 1 + vocales xs
- | x == 'u' = 1 + vocales xs
- | otherwise = 0 + vocales xs
- salioMal :: Helado -> Bool
- salioMal ("frutilla",n,prop) = (n > 0) || (prop /= 0.4)
- salioMal ("durazno",n,prop) = (n > 0) || (prop < 0.2) || (prop > 0.6)
- salioMal (helado,n,prop)
- | (longitud helado < 8) = (n > 0) || ((longitud helado / 10) /= prop)
- | (longitud helado >= 8) = (n > 0) || ((vocales helado / 10) /= prop)
- | otherwise = False
- heladera :: Int -> Helado -> Helado
- heladera n (a,b,c) = (a,n,c)
- batidora :: Cajon -> Bidon -> Helado
- batidora (nombre,kilos) (temp,litros) = (nombre,temp,(litros/kilos))
- exprimidora :: Cajon -> Cajon
- exprimidora (nombre,kilos) = (nombre,(kilos/2))
- mixturadora :: Helado -> Helado -> Helado
- mixturadora (nombre1,temp1,prop1) (nombre2,temp2,prop2) = ((nombre1 ++ "-" ++ nombre2) , (min temp1 temp2) , (prop1+prop2)/2)
- dispenser :: Float -> Bidon
- dispenser n = (0,n)
- cintaTransportadora f1 f2 f3 = (f3 . f2 . f1)
- cintaUnificadora f1 f2 f3 = f3 f1 f2
- produccionEnSerie cajones bidon = filter (\x -> not(salioMal (batidora x bidon))) cajones
Advertisement
Add Comment
Please, Sign In to add comment