【发布时间】:2017-01-13 22:20:33
【问题描述】:
我仍然是 Haskell 的初学者,目前我正在尝试创建一个函数,在该函数中我生成一个无限列表,我(如果我使用取 10 为例)从中取前十个数字,这些数字可以被另一个列表整除,这是给定的。
这是我的想法:
myCode :: [Int] -> [Int]
myCode (a:as) = [ x | x <- [0..] , x `mod` a == 0 , x `mod` myCode as ==0]
您可能已经注意到,我正在尝试通过递归来解决它,但是我总是收到错误“无法将预期类型‘Bool’与实际类型‘[Int]’匹配” 我有点不知所措,因为我不知道如何解决这个特殊问题。
【问题讨论】:
-
所以它们应该可以被给定列表中的所有元素整除?
-
你希望这个递归完成什么?给出一些示例输出,该函数一旦工作就应该产生!
-
抱歉,它们应该是所有可以被给定列表的任意数字整除的数字,例如取 5 (myCode[2,5]) 会得到列表 [2,4,5 ,6,8]