packages feed

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