]> njoseph.me Git - experiments.git/blame - emp_sort/emp_sort.gist
emp_sort: Sort a list of employees by salary in 4 languages
[experiments.git] / emp_sort / emp_sort.gist
CommitLineData
1d1e9c65
JN
1Clojure
2
3(def emps (map (fn [x] {:name (str "employee" x) :salary (* 100 x)}) (take 10 (range 1 10))))
4(take (/ (count emps) 10) (reverse (sort-by :salary emps)))
5
6Haskell
7
8import Data.List (sortBy)
9
10data Employee = Employee {name :: String, salary :: Double } deriving (Show)
11let emps = map (\x -> Employee ("emp" ++ show x) (x * x)) [1..10] in take ((length emps) `div` 10) (sortBy (\x y -> compare (salary y) (salary x)) emps)
12
13Scala
14
15case class Employee(name: String, salary: Double)
16val emps = (1 to 10).map(i => Employee("employee" + i, i * 100))
17emps.sortBy(_.salary).reverse.take(math.ceil(emps.size / 10.0))
18
19Python
20
21emps = {"employee"+str(i): i*100 for i in range(1, 11)}
22[(key, value) for key, value in sorted(emps.items(), key=lambda (k,v): (-v,k))][0:len(emps)/10]