Came up with interesting, cute, sexy, cool, neat, or elegant one-liners lately?
Let’s have some fun
Explain it if you want, it might be educational or inspirational for others.
I’ll start:
(map (apply juxt columns) list-of-maps)
ie.
(def list-of-maps
[{:a 1 :b 2}
{:a 3 :b 4}
{:a 5 :b 6}
{:a 7 :b 8}])
(def columns
[:a :b])
(map (apply juxt columns) list-of-maps) ;;=> ([1 2] [3 4] [5 6] [7 8])
Converts a list of maps to a two-dimensional list, according to keys in columns
(ie. output can be fed into clojure.data.csv for CSV generation)
I like here, how we use juxt
applied to a bunch of keywords (keywords -crucially- are functions!), resulting in a function that calls each keyword in columns
on the input (a map in this case), effectively doing a map lookup for each key, and returning the result in a vector.