Skip to content

Data.List.maximumBy uses counter-intuitive ordering

Data.List.maximumBy (Data.Ord.comparing snd) [(0, 1), (3, 2), (2, 2), (1, 1)]

What do you expect the outcome to be? All Haskell-programmers I know that I asked this question, would answer, based on their intuition, (3, 2). However, this is not the behaviour that Data.List.maximumBy currently has: Instead, (2, 2) (the last occurrence of a 'maximum' element) is kept.

Furthermore, this behaviour is different from the one used by Data.List.minimumBy. I would therefore like to request:

  • If its behaviour is unintentionally different from minimumBy, alter the implementation to match it.
  • If its behaviour is intentionally the opposite, this should be specified in the documentation.
Trac metadata
Trac field Value
Version 8.6.2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
Edited by Marten Wijnja
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information