(let
  [total
   (fn
     total
     [items discount]
     (reduce
       :+
       0.0
       (map
         (fn
           [{quantity quantity unitPrice unitPrice}]
           (* (float (* .quantity .unitPrice)) (- 1.0 .discount)))
         .items)))]
  [(total [{quantity 3 unitPrice 20} {quantity 2 unitPrice 15}] 0.1)
   (total [{quantity 2 unitPrice 15}] 0.0)
   (total [] 0.5)])
