我将如何将这样的字符串 "13.2..2"
转换为这样的列表[Just 1, Just 3, Nothing, Just 2, Nothing, Nothing, Just 2]
我看过 digitToInt
但它没有处理 Maybe Int
。有没有办法可以修改 digitToInt
来处理 Maybe Int
?
最佳答案
如果您想将所有非数字转换为 Nothing
,您可以使用 guards 和 fmap
import Data.Char
charToMaybeInt :: Char -> Maybe Int
charToMaybeInt x
| isDigit x = Just $ digitToInt x
| otherwise = Nothing
main = putStrLn $ show $ fmap charToMaybeInt "13.2..2"
根据我的非专家理解,使用守卫比使用
if
/else
更惯用。关于haskell - 如何将字符串转换为 Maybe Int 列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43960597/