哈斯克尔的"弃牌"?

-6 haskell

编写一个更高阶的函数,atEach f xs将默认函数f应用于列表的每个元素xs.

atEach succ [1 to 5] = [2,3,4,5,6]
atEach length ["Haskell", "go", "forward"] = [7,5,8]
Run Code Online (Sandbox Code Playgroud)

Lan*_*dei 5

正如dave4420已经指出的那样,您atEach似乎是标准map功能(如果没有,请澄清).如果是这种情况,您可以采用不同的方式来实现它,例如:

-- direct recursion
atEach _ [] = []
atEach f (x:xs) = ??? 

-- list comprehension
atEach f xs = [??? | x <- xs]

--using a fold
atEach f = foldr ??? []
Run Code Online (Sandbox Code Playgroud)

我不想破坏乐趣,所以你可以尝试填写???.