2016-11-21 7 views
0

Как преобразовать список чисел в список строк (одна строка = один номер из списка) в Haskell.Как преобразовать список чисел в список строк в Haskell

[Int] -> [String]

Примеры: [1,2,3,4] -> [ "1", "2", "3", "4"]

+0

Взгляните на [это] (http://stackoverflow.com/questions/919937/convert-string-list -to-int-list), которые делают inverse (string to int) – Garf365

+0

Если у вас есть [функция] (https://www.haskell.org/hoogle/?hoogle=a+-%3E+String) 'Int - > String' вы можете сделать функцию '[Int] -> [String]', используя [map] (https://www.haskell.org/hoogle/?hoogle=%28a+-%3E+b%29+-% 3E +% 5Ba% 5D + -% 3E +% 5Bb% 5D) 'map :: (a -> b) -> [a] -> [b]' – wizzup

ответ

3

Если у вас есть функция f :: a -> b, то map f :: [a] -> [b] применяет f по всем элементам списка.

Функция show может преобразовывать «печатные» типы в их строковое представление. В частности, один из возможных типов для show - Int -> String.

Используйте оба инструмента.

0

Использование списка монады:

f :: [Int] -> String 
f xs = do 
     x <- xs 
     return $ show x 

или что то же самое:

f' :: [Int] -> [String] 
f' = (>>= return.show)