我是一个全新的haskell和函数式编程一般。
如何创建一个函数,仅使用列表解析就能找到所有小于200且可被3和7整除的奇数?
这是我代码:
oddsDivisible3and7 :: Integer -> Integer -> Integer -> Integer -> [Integer]
oddsDivisible3and7 xs = [x | x <- [1..xs],x mod 3 == 0 && x mod 7 == 0,x < 200]
以及它引发的错误:
• Couldn't match expected type ‘(Integer -> Integer -> Integer)
-> Integer -> Integer’
with actual type ‘Integer’
• The function ‘x’ is applied to two arguments,
but its type ‘Integer’ has none
In the first argument of ‘(==)’, namely ‘x mod 3’
In the first argument of ‘(&&)’, namely ‘x mod 3 == 0’
另一个块用于mod 7
我不是在找一个书面函数,我只是需要一些指导。
1条答案
按热度按时间juzqafwq1#
这里有几个键入错误和几个辛达错误,让我说明一下:
首先,类型应为:
Integral a => a -> [a]
然后,你想要被3除尽的,7和赔率(不能被2除尽),并且都小于200。
例如: