定义序列 (bn)n=1,2,... 使得当 n 可被 3 整除时 bn=3,其他情况下 bn=4(n+1)^2。 定义一个函数,为参数 n 创建序列 (bn)n=1,2,... 的 n 个初始数字的列表。
到目前为止,我有两个条件 1 和条件 2 的列表:
divisible3 n = [x | x <- [1..n], x `mod` 3 == 0]
notdivisible3 n = [x*x*4+8*x+4 | x <- [1..n], x `mod` 3 /= 0]
我希望它是一个列表,例如:
list n = [x | x <- [1..n], condition1, condition 2]
答案 0 :(得分:1)
您应该在列表推导式的“yield”部分写一个 if ... then ... else ...
,而不是过滤器。所以像:
list n = [ if n `mod` 3 == 0 then … else … | x <- [1..n]]
我将 …
部分留作练习。