0
我实现了一个函数,可以计算一个数字列表,并生成列表中有多少个偶数,我使用递归实现,但是我需要这次与列表理解。 我曾尝试使用列表理解,但一旦我执行该函数,它只是挂起,它没有给我任何东西。这里是我的代码:计数偶数haskell与列表理解?
countEven :: (Integral t, Num a) => [t] -> a
countEven [] = 0
countEven (x:xs)
| ev == True = 1 + (countEven xs)
| otherwise = countEven xs
where ev = even x
这是使用列表理解我的尝试:
evenList :: (Integral t, Num a) => [t] -> a
evenList xs = countEven [x | x <- [1..]]
我没有在这个网站上搜索它,我只发现与递归相同的功能,但没有与列表理解实现。 – wadbarca 2014-11-03 02:34:37
''[1 ..]'包含无限数量的偶数 - 这就是为什么'countEven'挂起的原因。 – ErikR 2014-11-03 02:38:26
你是对的我的坏:(我只是把它找出来我是一个新的Haskell,任何想到要放什么?我试图把[1..n],但它不起作用? – wadbarca 2014-11-03 02:40:30