我想列出所有除以n的整数。这是一个家庭作业问题。到目前为止,我已经做到了这一点。
divisors :: Int -> [Int]
divisors n | n < 1 = []
| otherwise = filter (\n -> n `mod` x == 0) [1..n]
where x = [1..n]
我知道这是错误的,但我没有得到正确的过滤谓词。我不知道这样做的语法。当然我不能使用n mod
n,因为它只列出了所有元素1到n。
答案 0 :(得分:4)
您想要检查每个mod n k == 0
的{{1}}是否从1到k
。 n
是固定的(n
的参数)和divisors
变化,即应该是lambda表达式的参数
k
答案 1 :(得分:0)
我不知道你要做什么,但mod
的类型是
mod :: Integral a => a -> a -> a
您可以使用Integral参数和整数参数列表来调用它。