我想定义一个函数来计算列表中满足给定谓词的元素数量:
number_of_elements :: (a -> Bool) -> [a] -> Int
number_of_elements f xs = length (filter f xs)
Run Code Online (Sandbox Code Playgroud)
例如:
number_of_elements (==2) [2,1,54,1,2]
Run Code Online (Sandbox Code Playgroud)
应该返回2.
我们可以写得更短:
number_of_elements f = length . filter f
Run Code Online (Sandbox Code Playgroud)
是否可以在没有f参数的情况下编写它?