(defn clos [amount]
  ; denoms is a list containing the currency denominations
  (let [denoms '(20)]
    (reduce
     (fn [[amount-left coins] denom]
       (let [{:keys [mod dividend]} (calc-coins amount-left denom)]
         (if (pos? dividend)
           [mod (assoc coins denom dividend)]
           [amount-left coins])))
     [amount {}]
     denoms)))

Generated by matt using scpaste at Sun Jul 10 07:22:48 2011. HADT. (original)