map-exts-0.1.0.0: src/Main.hs
module Main where
import Data.Map.Extensions as Map
type Name = String
type Job = String
type Age = Double
fixture :: [(Name, Job, Age)]
fixture = [ ("Alice", "Engineer", 25)
, ("Bob" , "Engineer", 35)
, ("Ryan" , "Designer", 50)
, ("Zoe" , "Artist" , 21)
]
average :: (Fractional v) => Map k v -> v
average xs = Map.foldr (+) 0 xs / fromIntegral (Map.size xs)
main :: IO ()
main = do
print $ fromList2 fixture
print $ transpose $ fromList2 fixture
-- print the average age in a job
print $ fmap (average) $ transpose $ fromList2 fixture