Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 在字符串理解中将数字更改为整数 multdigts::String->Int 多数字“”=1 多重数字符号str=[product x | x_Haskell_Functional Programming - Fatal编程技术网

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的信息”的回答,我似乎很公平我的意思是在字符串理解范围内,对此很抱歉。你非常,你给了我很多有用的关键字来查找,而且解释得非常好!