Skip to content

nubBy flips args to nubbing function

The nubBy function in the List library seems to flip
the order of arguments to the nubbing function from
that specified in the prelude:

nubBy eq (x:xs)         =  x : nubBy eq (filter (\y ->
not (eq x y)) xs)

I.e., it seems to use (eq y x) instead of (eq x y). 
This doesn't matter of course for symmetric nubbing
functions, but I just tried to use it with the
following function:

subsetEq :: (Eq a) => [a] -> [a] -> Bool
subsetEq l1 l2 = all (`elem` l2) l1

> nubBy subsetEq [[1],[1,2],[2,3],[2]] 
[[1],[1,2],[2,3]]

> nubBy (flip subsetEq) [[1],[1,2],[2,3],[2]]
[[1],[2,3],[2]]
Trac metadata
Trac field Value
Version 5.0
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution ResolvedRemind
Component None
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information