Haskell-一个无限列表,可被给定列表的每个数字整除

自然学徒

我仍然是Haskell的初学者,目前我正在尝试创建一个函数,在该函数中,我生成一个无限列表,从该列表中,我(例如,如果我使用10)将前十个数字除以另一个列表,该列表是给定的。

这是我的主意:

myCode :: [Int] -> [Int]
myCode (a:as) = [ x | x <- [0..] , x `mod` a == 0 , x `mod` myCode as ==0]

您可能已经注意到,我正在尝试通过递归来解决它,但是我总是收到错误“无法将预期类型'Bool'与实际类型'[Int]'相匹配”“我有点不知所措,因为我不会知道如何解决这个特定问题。

威廉·范·昂塞姆(Willem Van Onsem)

此处无需使用递归:只需使用all(或any)作为条件:

alldiv :: [Int] -> Int -> Bool
alldiv l b = all (\n -> b `mod` n == 0) l

myCode :: [Int] -> [Int]
myCode as = [ x | x <- [0..] , alldiv as x]

您可以重写alldiv为:

alldiv :: [Int] -> Int -> Bool
alldiv l b = all ((==) 0 . mod b) l

甚至在本地将其附加到myCode

myCode :: [Int] -> [Int]
myCode as = [ x | x <- [0..] , alldiv x]
    where alldiv b = all ((==) 0 . mod b) as

最后,您不需要列表理解,只需使用filter

myCode :: [Int] -> [Int]
myCode as = filter alldiv [0..]
    where alldiv b = all ((==) 0 . mod b) as

编辑

由于列表中的一个元素是一个分隔符就足够了,因此您只需要替换all为即可any

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Haskell对的一个数字和列表

来自分类Dev

可被 Y 和 Z 整除的整数的输出列表 Haskell

来自分类Dev

检查列表中的数字是否可被另一个数字整除的最有效方法

来自分类Dev

如何检查一个数字是否可以被列表中的每个数字整除

来自分类Dev

Haskell:创建列表中每个列表的最后一个元素的列表

来自分类Dev

在Haskell中实现无限列表

来自分类Dev

数字以及可被另一个数字整除的数字的数字(例如 3)

来自分类Dev

Haskell:将100个数字的列表更改为10个10个数字的列表吗?

来自分类Dev

给定一个数 N,返回可被 3 整除的最大数 <= N

来自分类Dev

Haskell 列表推导式无限列表问题

来自分类Dev

在列表中找到元素的前一个元素(Haskell)

来自分类Dev

需要帮助存储列表的上一个元素(Haskell)

来自分类Dev

列表中的第一个元素haskell

来自分类Dev

返回Haskell中列表的第一个元素

来自分类Dev

从Haskell的列表中选择一个随机元素

来自分类Dev

Haskell在文件中写一个列表,以后再读

来自分类Dev

haskell如何从另一个列表创建一个新列表?

来自分类Dev

haskell如何从另一个列表创建一个新列表?

来自分类Dev

C程序输出一个数字是否可被3整除

来自分类Dev

Haskell倒数数字列表

来自分类Dev

Haskell倒数数字列表

来自分类Dev

如何编写一个map语句来比较haskell中两个列表的每个元素?

来自分类Dev

Haskell,2个列表到每个元组列表

来自分类Dev

给定一个列表,我如何构造一个新列表,以使新列表的每个元素都是旧列表中每两个数字的和?

来自分类Dev

针对 Haskell 程序测试每个数字

来自分类Dev

Haskell如何生成此无限列表?

来自分类Dev

Haskell中无限列表的笛卡尔积

来自分类Dev

如何从Haskell的无限列表中获取元素对?

来自分类Dev

Haskell $!运算符和无限列表

Related 相关文章

  1. 1

    Haskell对的一个数字和列表

  2. 2

    可被 Y 和 Z 整除的整数的输出列表 Haskell

  3. 3

    检查列表中的数字是否可被另一个数字整除的最有效方法

  4. 4

    如何检查一个数字是否可以被列表中的每个数字整除

  5. 5

    Haskell:创建列表中每个列表的最后一个元素的列表

  6. 6

    在Haskell中实现无限列表

  7. 7

    数字以及可被另一个数字整除的数字的数字(例如 3)

  8. 8

    Haskell:将100个数字的列表更改为10个10个数字的列表吗?

  9. 9

    给定一个数 N,返回可被 3 整除的最大数 <= N

  10. 10

    Haskell 列表推导式无限列表问题

  11. 11

    在列表中找到元素的前一个元素(Haskell)

  12. 12

    需要帮助存储列表的上一个元素(Haskell)

  13. 13

    列表中的第一个元素haskell

  14. 14

    返回Haskell中列表的第一个元素

  15. 15

    从Haskell的列表中选择一个随机元素

  16. 16

    Haskell在文件中写一个列表,以后再读

  17. 17

    haskell如何从另一个列表创建一个新列表?

  18. 18

    haskell如何从另一个列表创建一个新列表?

  19. 19

    C程序输出一个数字是否可被3整除

  20. 20

    Haskell倒数数字列表

  21. 21

    Haskell倒数数字列表

  22. 22

    如何编写一个map语句来比较haskell中两个列表的每个元素?

  23. 23

    Haskell,2个列表到每个元组列表

  24. 24

    给定一个列表,我如何构造一个新列表,以使新列表的每个元素都是旧列表中每两个数字的和?

  25. 25

    针对 Haskell 程序测试每个数字

  26. 26

    Haskell如何生成此无限列表?

  27. 27

    Haskell中无限列表的笛卡尔积

  28. 28

    如何从Haskell的无限列表中获取元素对?

  29. 29

    Haskell $!运算符和无限列表

热门标签

归档