import Data.List (sortBy) import Data.Function list :: [(String, Double -> Double)] list = [("2^n" , (2**)) ,("2^log(n)" , (2**) . log) ,("4^n" , (4**)) ,("n" , id) ,("n^2" , (^2)) ,("n!" , product . enumFromTo 1) ,("n*log(n)" , (*) =<< log) ,("log(n!)" , log . product . enumFromTo 1) ,("log(log(n))" , log . log) ,("sqrt(log(n))" , sqrt . log)] main :: IO () main = mapM_ print $ reverse $ sortBy (compare `on` snd) $ map (fmap ($10)) list