Haskell将函数作为另一个函数的参数调用

时间:2014-02-28 10:55:27

标签: haskell

我有一个功能可以对[Film]进行排序,并创建一个包含指定dfnSortD的列表。

我还有另一个功能可以计算电影r的平均fnAvg

现在我需要找到d所有电影的所有平均评分的平均值。

我想通过创建另一个函数来开始这个,该函数为dfnLR :: String -> [Film] -> [Float]所有电影创建所有平均评分的列表,这样我就可以轻松获得它们的平均值与另一个功能。

这就是我被困的地方,我想用作fnLR的参数的电影列表是另一个函数fnSortD的输出,我无法弄清楚我的生活如何使用它作为输入参数,同时还能够将电影数据类型分离为其变量定义。

我希望这个问题不会太混乱,这肯定让我感到困惑。

1 个答案:

答案 0 :(得分:1)

你实际要问的是可以解决的问题:

fnListAvgRatings :: [Film] -> [Float]
fnListAvgRatings = map fnAvg . fnSortD 

上述内容与:

相同
fnListAvgRatings films = map fnAvg (fnSortD films)

因为

map fnAvg (fnSortD films) = (map fnAvg . fnSortD) films

我已经掺杂了dir参数,因为它没有做任何事情。

现在因为这个功能是如此微不足道,以至于它的身体需要尽可能多的符号,如果我是你的话,我甚至都不会去理解它。