Haskell 在字符串理解中将数字更改为整数 multdigts::String->Int 多数字“”=1 多重数字符号str=[product x | x
Haskell 在字符串理解中将数字更改为整数 multdigts::String->Int 多数字“”=1 多重数字符号str=[product x | x,haskell,functional-programming,Haskell,Functional Programming,digitToInt x将不起作用,因为这是列表理解中的一个过滤器,因此这意味着digitToInt x应返回一个Bool。即使以某种方式起作用,它也不会起多大作用,因为它会将其转换为Int,然后忽略结果 您应该将数码点放在列表理解的“收益”部分,以便: multDigits :: String -> Int multDigits "" = 1 multDigits str = [product x | x <- str, isDigit x, digitToIn
digitToInt x
将不起作用,因为这是列表理解中的一个过滤器,因此这意味着digitToInt x
应返回一个Bool
。即使以某种方式起作用,它也不会起多大作用,因为它会将其转换为Int
,然后忽略结果
您应该将数码点
放在列表理解的“收益”部分,以便:
multDigits :: String -> Int
multDigits "" = 1
multDigits str = [product x | x <- str, isDigit x, digitToInt x]
multDigits :: String -> Int
multDigits str = product [digitToInt x | x <- str, isDigit x]
您还可以使用和,而不是使用列表理解,因此:
multDigits :: String -> Int
multDigits "" = 1
multDigits str = [product x | x <- str, isDigit x, digitToInt x]
multDigits :: String -> Int
multDigits str = product [digitToInt x | x <- str, isDigit x]
multdigts::String->Int
multDigits=product.map digitToInt.filter isDigit
@WillemVanOnsem该链接有何帮助?该功能已经在讨论中。对于“我无法在网上找到多少关于如何使用isDigit的信息”的回答,我似乎很公平我的意思是在字符串理解范围内,对此很抱歉。你非常,你给了我很多有用的关键字来查找,而且解释得非常好!