2011-06-09 37 views

回答

6

您应该使用reads而不是read

Prelude> :m Data.Maybe 
Prelude Data.Maybe> (map (fmap fst . listToMaybe . reads) ["1", "2", "3"]) :: [Maybe Integer] 
[Just 1,Just 2,Just 3] 
Prelude Data.Maybe> (map (fmap fst . listToMaybe . reads) ["1", "2", "a"]) :: [Maybe Integer] 
[Just 1,Just 2,Nothing] 
Prelude Data.Maybe> 
+5

请注意,这将愉快地将“123abc”变成“123”。您还需要检查元组的第二个元素是否为空以防止发生这种情况。 – sepp2k 2011-06-09 07:51:49

+0

@ sepp2k良好的通话。 – 2011-06-09 09:44:50

相关问题