0

sortByandを使用してリストを注文しようとしてcompareいますが、compare式を思い付くのに問題があります。filmRating関数によって返される平均に基づいてリストを並べ替える必要があります。

formattedByYear :: Int -> String
formattedByYear year = concatMap formatString $ sortBy (compare filmRating) $ filmsByYear year

filmRating :: Film -> Float
filmRating (Film _ _ _ ratings)
      | ratings == [] = 0.0
      | otherwise = average (map snd ratings)
4

1 に答える 1

4

必要な関数はですData.Ord.comparing

Prelude> :t Data.Ord.comparing
Data.Ord.comparing :: Ord a => (b -> a) -> b -> b -> Ordering
于 2012-05-01T19:49:10.623 に答える