3
我试图创建一个函数,它接受一个Int
(n
),和一个列表Int
的k
秒,返回所有数字1 <= i <= n
,通过从列表k
整数的至少一个整除的总和。如何测试一个列表中的整数是否可以被另一个列表中的整数整除?
addl::Int -> [Int] -> Int
addl x [] = 0
addl x (y:ys) = if ((map [1..x] `mod` y) == 0)
then y + addl x ys
else 0 + addl x ys
这是我得到了什么,但我得到这个消息:
Couldn't match expected type `a0 -> b0' with actual type `[t0]'
In the first argument of `map', namely `[1 .. x]'
In the first argument of `mod', namely `map [1 .. x]'
In the first argument of `(==)', namely `(map [1 .. x] `mod` y)'
,我一直试图弄清楚,只是还没有认识。 所有帮助非常感谢。
你想用地图完成什么?地图需要一个函数和一个列表,所以你的签名是错误的。 – wvdz 2014-09-29 11:08:39
试图确保其在MODS [1..X]每一个数字,其中y – Haskellnewb27 2014-09-29 11:10:36
您的意思是'ADD1 NK = SUM $过滤器(\ X - >任何((== 0)MOD x)的K)1 ..?]'? – Vektorweg 2014-09-29 11:16:59