Subrayado de un carácter
Definir el procedimiento
subraya :: String -> Char -> IO ()
tal que (subraya cs c) escribe la cadena cs y debajo otra subrayando las ocurrencias de c. Por ejemplo,
λ> 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ª 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]