2012-12-02 33 views

回答

6

您可以结合map,它将函数应用于列表中的每个元素,并将Int值转换为其Char等效值:

> map chr [72,73,74,75] 
"HIJK" 
0

你可以用 'CHR' 从模块字符的整数值转换为字符:

import Char 

intListToString l = [ chr x | x <- l ] 

main = do 
    putStrLn $ "the string: " ++ (intListToString [72,73,74,75]) 

运行上面有 'runghci' 给出:

the string: HIJK 
6

您可以将Int码点转换使用chr :: Int -> Char一个Char到;一个String只是一个列表Char s。请注意,这将适用于任何Unicode代码点,而不仅仅是ASCII,这是您应该做的任何事情。

你可以用Hoogle找到类似这样的功能;只需输入类似Int -> Char的东西,它会给你匹配该类型的函数。

0

您是否想将此列表作为直线字符串或带逗号的列表?除非你想ASCII字符值转换为字符同行(其已经覆盖),你可以做到以下几点:

concatMap show [72,73,74,75] 

会给你一个“72737475”的字符串和

init $ tail $ show [72,73,74,75] 

会给你一个“72,73,74,75”字符串