假设我想考虑表单的输入
[int_1, int_2, ..., int_n]
[int_1, int_2, ..., int_m]
...
从文本文件中读取输入。我的目标是获得此列表的最大大小。目前我有一个识别这种模式的正则表达式:
let input = "[1,2,3] [1,2,3,4,5]"
let p = input =~ "(\\[([0-9],)*[0-9]\\])" :: [[String]]
输出:
[["[1,2,3]","[1,2,3]","2,"],["[1,2,3,4,5]","[1,2,3,4,5]","4,"]]
所以我追求的是第三个索引+ 1的最大值。但是,我被困的地方是试图将此索引视为一个整数。例如,我可以很好地引用元素:
(p !! 0) !! 2
> "2,"
但我无法将其转换为 int,我试过了
read( (p !! 0) !! 2)
然而,这不起作用,尽管事实上
:t (p !! 0) !! 2
> (p !! 0) !! 2 :: String
似乎是一个字符串。任何关于为什么我不能将其作为 int 阅读的建议将不胜感激。
再次感谢。