【发布时间】:2015-05-21 07:56:07
【问题描述】:
我正在阅读 learnyouahaskell 章节,并一直在尝试递归函数(和守卫)。我找到了一些练习,其中一个我要从 [Int] 形式的字符串中检索十进制数。这是我目前所拥有的:
retrieveDecimalsFromString :: String -> [Int]
retrieveDecimalsFromString (x:xs)
| x `elem` ['0'..'9'] = x:retrieveDecimalsFromString xs
| otherwise = retrieveDecimalsFromString xs
我理解这会崩溃,因为我返回的是字符串而不是 [Int]。不过,我似乎无法找到解决方案。也许我的方法是错误的。或者(没有递归)我试过:
retrieveDecimalsFromString :: String -> [Int]
retrieveDecimalsFromString xs = filter (`elem` ['0'..'9']) xs
这会导致同样的问题。以上可以吗?
【问题讨论】:
标签: string list haskell recursion type-conversion