Haskell-编写一个函数countPositives来计算列表中的正数(严格大于0的那些)

Haskell-编写一个函数countPositives来计算列表中的正数(严格大于0的那些),haskell,Haskell,例如,countPositives[0,1,-3,-2,8,-1,6]==3 我在运行它时遇到问题,我相信这与数据类型有关 countPositives::Int->Int countPositives xs=length[x | x 0]一个Int是一个整数,至少-229和229-1之间的所有数字都可以用Int表示。例如,42是一个Int,而不是Ints的列表。您可以使用[Int]查看Int的列表,因此: countPositives :: [Int] -> Int countPosi

例如,
countPositives[0,1,-3,-2,8,-1,6]==3

我在运行它时遇到问题,我相信这与数据类型有关

countPositives::Int->Int

countPositives xs=length[x | x 0]
一个
Int
是一个整数,至少-229和229-1之间的所有数字都可以用
Int
表示。例如,
42
是一个
Int
,而不是
Int
s的列表。您可以使用
[Int]
查看
Int
的列表,因此:

countPositives :: [Int] -> Int
countPositives xs = length [ x | x <- xs, x > 0]
countPositives::[Int]->Int

countPositives xs=length[x | x 0]
一个
Int
是一个整数,至少-229和229-1之间的所有数字都可以用
Int
表示。例如,
42
是一个
Int
,而不是
Int
s的列表。您可以使用
[Int]
查看
Int
的列表,因此:

countPositives :: [Int] -> Int
countPositives xs = length [ x | x <- xs, x > 0]
countPositives::[Int]->Int

countPositives xs=length[x | x 0]
Int
是一个整数,而不是数字列表。对于数字列表,它是
[Int]
。为什么投反对票?这看起来像是一个新用户提出的一个写得相当好、完全合法的问题。不是很有趣,但完全合适。我也不同意接近票数的观点。它显然是可复制的,“打字错误”是指键盘上的机械错误,这与“我不知道Int和[Int]之间的区别”不同@amalloy,我称之为广义打字错误。OP得到了一个有用的答案,希望能学到他们需要的东西,这很好,但我认为对其他人来说没有太多。
Int
是一个整数,而不是一个数字列表。对于数字列表,它是
[Int]
。为什么投反对票?这看起来像是一个新用户提出的一个写得相当好、完全合法的问题。不是很有趣,但完全合适。我也不同意接近票数的观点。它显然是可复制的,“打字错误”是指键盘上的机械错误,这与“我不知道Int和[Int]之间的区别”不同@amalloy,我称之为广义打字错误。OP得到了一个有用的答案,希望能学到他们需要的东西,这很好,但我不认为这对其他人有什么好处。