hw8: exercise 5
authorRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Fri, 26 Dec 2014 10:35:19 +0000 (16:05 +0530)
committerRamakrishnan Muthukrishnan <ram@rkrishnan.org>
Fri, 26 Dec 2014 10:35:19 +0000 (16:05 +0530)
hw8/Party.hs

index 3bc5e1b448b84b399c4101b26305152637f6c197..84330068a92983cf8728d43c8f302777f5496c35 100644 (file)
@@ -4,6 +4,7 @@ module Party where
 import Data.Monoid
 import Employee
 import Data.Tree
+import qualified Data.List as L
 
 -- exercise 1
 -- glCons - a naive way to add an employee to a guest list
@@ -60,3 +61,18 @@ maxFun = uncurry moreFun . maxFunPair
 maxFunPair :: Tree Employee -> (GuestList, GuestList)
 maxFunPair (Node e es) = nextLevel e $ map maxFunPair es
 
+-- exercise 5
+-- main
+
+sortedGL :: GuestList -> (Integer, [String])
+sortedGL (GL empls funval) = (funval, L.sort $ map empName empls)
+
+getEmployeeList :: String -> String
+getEmployeeList empls = let (f, ls) = sortedGL (maxFun (read empls))
+                        in
+                          unlines $ show f : ls
+
+main :: IO ()
+main = do
+  empls <- readFile "company.txt"
+  putStrLn $ getEmployeeList empls