IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

Data.ListのByつき関数

Data.ListにはByつき関数がありますが、ないものとあるものを並べてみました。

対応関係としては、

  • Eq a が a -> a -> Bool
  • Ord a が a -> a -> Ordering

となっています。

関数 Byつき関数
nub Eq a => [a] -> [a] nubBy (a -> a -> Bool) -> [a] -> [a]
delete Eq a => a -> [a] -> [a] deleteBy (a -> a -> Bool) -> a -> [a] -> [a]
(\\) Eq a => [a] -> [a] -> [a] deleteFirstsBy (a -> a -> Bool) -> [a] -> [a] -> [a]
union Eq a => [a] -> [a] -> [a] unionBy (a -> a -> Bool) -> [a] -> [a] -> [a]
intersect Eq a => [a] -> [a] -> [a] intersectBy (a -> a -> Bool) -> [a] -> [a] -> [a]
group Eq a => [a] -> a groupBy (a -> a -> Bool) -> [a] -> a
sort Ord a => [a] -> [a] sortBy (a -> a -> Ordering) -> [a] -> [a]
insert Ord a => a -> [a] -> [a] insertBy (a -> a -> Ordering) -> a -> [a] -> [a]
maximum Ord a => [a] -> a maximumBy (a -> a -> Ordering) -> [a] -> a
minimum Ord a => [a] -> a minimumBy (a -> a -> Ordering) -> [a] -> a

(//)とdeleteFirstsByが対応している点が関数名からはわかりにくいですねぇ。