0
比方說,我要考慮的形式哈斯克爾正則表達式和讀取字符串作爲整數
[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作爲將不勝感激。
再次感謝。
如果您需要列表的長度,則不需要轉換爲整數值。 使用'length $(讀取「[1,2,3,4,5]」:: [Int])有效。 – 2012-07-23 14:02:34