Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
6
Task/Averages-Mode/Haskell/averages-mode-1.hs
Normal file
6
Task/Averages-Mode/Haskell/averages-mode-1.hs
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
import Prelude (foldr, maximum, (==), (+))
|
||||
import Data.Map (insertWith', empty, filter, elems, keys)
|
||||
|
||||
mode :: (Ord a) => [a] -> [a]
|
||||
mode xs = keys (filter (== maximum (elems counts)) counts)
|
||||
where counts = foldr (\x -> insertWith' (+) x 1) empty xs
|
||||
6
Task/Averages-Mode/Haskell/averages-mode-2.hs
Normal file
6
Task/Averages-Mode/Haskell/averages-mode-2.hs
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
import Data.List (group, sort)
|
||||
|
||||
mode :: (Ord a) => [a] -> [a]
|
||||
mode xs = map fst $ filter ((==best).snd) counts
|
||||
where counts = map (\l -> (head l, length l)) . group . sort $ xs
|
||||
best = maximum (map snd counts)
|
||||
11
Task/Averages-Mode/Haskell/averages-mode-3.hs
Normal file
11
Task/Averages-Mode/Haskell/averages-mode-3.hs
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
import Data.List (partition)
|
||||
|
||||
mode :: (Eq a) => [a] -> [a]
|
||||
mode = snd . modesWithCount
|
||||
where modesWithCount :: (Eq a) => [a] -> (Int, [a])
|
||||
modesWithCount [] = (0,[])
|
||||
modesWithCount l@(x:_) | length xs > best = (length xs, [x])
|
||||
| length xs < best = (best, modes)
|
||||
| otherwise = (best, x:modes)
|
||||
where (xs, notxs) = partition (== x) l
|
||||
(best, modes) = modesWithCount notxs
|
||||
Loading…
Add table
Add a link
Reference in a new issue