Subrayado de un carácter
Definir el procedimiento
1 |
subraya :: String -> Char -> IO () |
tal que (subraya cs c) escribe la cadena cs y debajo otra subrayando las ocurrencias de c. Por ejemplo,
1 2 3 4 5 6 7 8 9 |
λ> subraya "Salamanca es castellana" 'a' Salamanca es castellana ^ ^ ^ ^ ^ ^ ^ λ> subraya "Salamanca es castellana" 'n' Salamanca es castellana ^ ^ λ> subraya "Salamanca es castellana" ' ' Salamanca es castellana ^ ^ |
Soluciones
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
-- 1ª definición subraya :: String -> Char -> IO () subraya cs c = do putStrLn cs putStrLn (subrayado cs c) subrayado :: String -> Char -> String subrayado cs c = map procesa cs where procesa x | x == c = '^' | otherwise = ' ' -- 2ª definición subraya2 :: String -> Char -> IO () subraya2 cs c = mapM_ putStrLn [cs, subrayado cs c] |