创建列表后,如何在Haskell中获取列表的长度



因此,使用filter函数,我创建了一个基于用户指定条件返回列表的东西。例如,ispos x = x > 0,您使用我的函数在列表上调用它,它将返回一个列表,但我希望它返回该列表的长度。我该怎么做?

count'filter :: (a -> Bool) -> [a] -> [a]
count'filter p xs = [ x | x <- xs, p x]

使用length :: Foldable f => f a -> Int

countfilter :: (a -> Bool) -> [a] ->Int
countfilter p xs =length[ x | x <- xs, p x]

您可以使用filter :: (a -> Bool) -> [a] -> [a]:来代替列表理解

countfilter :: (a -> Bool) -> [a] ->Int
countfilter p = length .filter p

最新更新