maximum' :: [Writer [Int] Int] -> Writer [Int] Int
maximum' xs = writer (maximumBy (comparing fst) (map runWriter xs))
如果我使用序列,那么所有的成绩单将合并到我不想要的最大成绩单中,如果我使用runWriter但是有没有办法在没有它的情况下完成它? 谢谢!
答案 0 :(得分:1)
您可以通过以下方式简化代码,而不是显式构建编写器结果和重构所选编写器:
maximum' :: [Writer [Int] Int] -> Writer [Int] Int
maximum' = maximumBy (comparing $ fst . runWriter)