Преобразование типов
У меня функция путём нехитрых манипуляций получает строку типа IO [String], а мне нужен String. Например, вывести на экран.
Как производить преобразование типов?
Источник: Stack Overflow на русском
У меня функция путём нехитрых манипуляций получает строку типа IO [String], а мне нужен String. Например, вывести на экран.
Как производить преобразование типов?
Пример — программа, которая конкатенирует свои аргументы:
import System.Environment
main = do
args <- getArgs
putStrLn $ concat args
Тип getArgs :: IO [String]
.
Напишем функцию f
:
f :: Monad m => m [[a]] -> m [a]
f m = m >>= (\ xs -> return $ concat xs)
Развернем do
нотацию в оригинальном примере:
main :: IO ()
main = (f getArgs) >>= putStrLn