我正在尝试计算具有递归代码的列表列表中非空列表的数量。我的目标是写一些简单的东西:
prod :: Num a => [a] -> a
prod [] = 1
prod (x:xs) = x * prod xs
Run Code Online (Sandbox Code Playgroud)
我已经有了定义和边缘条件的想法:
nonEmptyCount :: [[a]] -> Int
nonEmptyCount [[]] = 0
Run Code Online (Sandbox Code Playgroud)
我不知道如何继续,有什么提示吗?
我正在尝试获取一个程序,该程序首先从列表中过滤出与条件匹配的元素,然后根据也作为参数接收的函数映射元素。
filterMap :: (a -> b) -> (a -> Bool) -> [a] -> [b]
Run Code Online (Sandbox Code Playgroud)
例如:
filterMap (+1) even [1..10] == [3,5,7,9,11]
filterMap (2^) (/=0) [0,1,0,2] == [2,4]
Run Code Online (Sandbox Code Playgroud)