读取字符串为ints haskell

时间:2013-12-06 18:25:52

标签: haskell

无论如何我可以读取一个整数字符串吗?

例如阅读

triangle = ["1"
           ,"2 3"
           ,"4 5 6"]

[[1],[2,3],[4,5,6]]

convertToInt :: [String] -> [[Int]]
convertToInt [] = []
convertToInt (x:xs) = **(somehow convert x to list of ints)** : convertToInt xs

不确定如何处理,是否有任何内置函数?

编辑:谢谢!这是解决方案

convertToInt :: [String] -> [[Int]]
convertToInt [] = []
convertToInt (x:xs) = (map read (words x)) : convertToInt xs

1 个答案:

答案 0 :(得分:7)

这里有一个让你入门的提示

>> let str = "1 2 3"
>> words str
["1","2","3"]
>> map read (words str) :: [Int]
[1,2,3]

修改

既然你现在已经想到了你需要做什么,我想向你展示另一个解决方案,这可能会让你更多地思考Haskell

convertToInt :: [String] -> [[Int]]
convertToInt = map (map read . words)

尝试并弄清楚它是如何工作的 - 您对Haskell的理解将会大大改善。