Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 调查结果;“差距”;在一系列数字中_Haskell - Fatal编程技术网

Haskell 调查结果;“差距”;在一系列数字中

Haskell 调查结果;“差距”;在一系列数字中,haskell,Haskell,我在浏览清单时遇到了麻烦。我做了这个代码,它给了我一个数字列表,这些数字被它们的数字之和平分。例如,考虑数字123:123/6=20.5,因此它将不在列表中。另一方面,280将出现在列表中,因为280/10=28 let inaHelper x = (floor(x)`mod`10)+ (floor(x/10)`mod`10)+(floor(x/100)`mod`10) let ina = [x | x <- [1..999] , x `mod` (inaHelper x) == 0

我在浏览清单时遇到了麻烦。我做了这个代码,它给了我一个数字列表,这些数字被它们的数字之和平分。例如,考虑数字123:123/6=20.5,因此它将不在列表中。另一方面,280将出现在列表中,因为280/10=28

let inaHelper x = (floor(x)`mod`10)+ (floor(x/10)`mod`10)+(floor(x/100)`mod`10)

let ina = [x | x <- [1..999] , x `mod` (inaHelper x) == 0  ]  

我是初学者,有人能帮忙吗?

一种简单但效率不高的方法是制作一个helper函数,用于检查列表中是否有某个元素在某个范围内:

hasElemInRange :: (Int,Int) -> [Int] -> Bool
hasElemInRange (lo, hi) xs = -- left as exercise
(提示:您可以使用该功能)

然后你可以把它包括在你的理解列表中:

let rare = [ x | x <- ina, hasElemInRange (x-5,x+5) ina ]

它将为列表中的每个元素提供其“上下文”,即前后的元素。也许你可以想出如何使用它来满足你的需要。

一种简单但效率不高的方法是制作一个助手函数,用于检查列表中是否有某个元素在某个范围内:

hasElemInRange :: (Int,Int) -> [Int] -> Bool
hasElemInRange (lo, hi) xs = -- left as exercise
(提示:您可以使用该功能)

然后你可以把它包括在你的理解列表中:

let rare = [ x | x <- ina, hasElemInRange (x-5,x+5) ina ]

它将为列表中的每个元素提供其“上下文”,即前后的元素。也许你可以想出如何使用它来满足你的需要。

不要使用floor,使用div。不要使用floor,使用div。