如何解决从单个列表理解中将两个Integer放入列表
我需要在列表理解中找到所有素数±2,但是看完之后我仍然找不到方法,到目前为止,我有:
primeTwins :: Integer -> [Integer]
primeTwins x = [x+2 | x <- [2..x],prime x]
但是,当我需要素数2时,这显然只会产生素数+2。 (素数x查找数字是否为素数)。如果不可能的话,我需要2个补偿,但是我也不知道该怎么做。从我的研究中,我还没有发现任何相关的知识,因此任何帮助都会有所帮助。 多数民众赞成在任何帮助下
解决方法
您可以使用另一个生成器,该生成器使用x-2
和x+2
,然后生成两者:
primeTwins :: Integer -> [Integer]
primeTwins x = [ y | x <- [2..x],prime x,y <- [x-2,x+2] ]
但是,同一元素可能在列表中出现两次。例如,3和7都是素数,这意味着生成1和5是因为3是素数。和5和9的生成是因为7是质数,所以5生成了两次。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。