Arantium Maestum

プログラミング、囲碁、読書の話題

簡単な硬貨問題 from IT速報4

前回からの続き

「随分とダサいコードを書いてるのね」と某IQ145の女子高生*1に言われた気がしたので考え直してみたら、こうなった。

(def coins [500 100 50 10 5 1])

(defn coin-divide [n]
  (map quot (reductions rem n coins) coins))

一つの直線で全部を処理するのをやめて、横にずらしたような感触。mapが複数のcollectionを受け取れることの便利さがヒカる。

*1:いや、Rich HickeyかPeter Norvigだったかもしれない