问题描述
|
[\“ 6 \”,\“ \”,\“ [[1,2,3,4,5,6],[7,8,9,10,11,12],[13,14,15, 16,17,18],[19,20,21,22,23,24],[25,26,27,28,29,30],[31,32,33,34,35,36]] \ “]
我必须从这6和[[1,15,16,18]中得到[19,36]]
我从文件中读取文件看起来
6。
[[1,21, 22,36]。
我尝试了map并读取了转换字符串的信息,但是它没有用。
对不起英语
解决方法
直接使用
map
和read
的问题是列表元素的类型不同。第一个元素是(或更好:应转换为)Int
,第二个元素为空列表,第三个元素为`[[Int]]
。
要将列表的第一个元素转换为Int
,可以说类似read $ head xs :: Int
,其中xs
是您的字符串列表。
第二个元素不能通过读取直接转换,因为空字符串将导致异常(Prelude.read:无解析)。
要转换第三个元素,它是整数列表的列表,您可以简单地说“ like7”。
这不是安全或优雅的方法,但是如果您的输入始终具有这种结构,则应该可以使用。