我正在为考试做练习,但无法解决以下list-comprehensions-exercises:
a)创建n个元素n为n的无穷个平方数n ^ 2, 都是偶数,除以9则得到余数2,除以35则得到余数3,这意味着:
[1444,446224,1684804,3717184,...]
b)为所有a∈{10,34,77,180},b∈{'p','r','g'},c创建一个礼拜堂(a,b,c,d)的列表∈{False,True}和d∈{'Y','Z'}。元素的顺序应先更改数字,然后更改小写字母,然后是boolean值,再更改大写字母,这意味着:
[(10,’p’,False,’Y’),(34,’p’,False,’Y’),(77,’p’,False,’Y’)
(180,’p’,False,’Y’),(10,’r’,False,’Y’),(34,’r’,False,’Y’),
(77,’r’,False,’Y’),(180,’r’,False,’Y’)...]
我不太确定如何在实际的haskell代码中实现此功能。
答案 0 :(得分:0)
a)
[n^2 | n <- [2, 4..],
n `mod` 9 == 2,
n `mod` 35 == 3]
对于b),以相反的顺序列出集合很重要。
[(a, b, c, d) | d <- ['Y', 'Z'],
c <- [True, False],
b <- ['p', 'r', 'g'],
a <- [10, 34, 77, 180]]