Wieczos Blog

Ich laufe auf Sonnenschein!

Clojure: Römische Zahlen umrechnen

by Thomas Wieczorek - Januar 13th, 2012.
Filed under: Clojure.

Meine Lösung zum 4Clojure Problem 92 finde ich recht hübsch:

(fn [roman]
  (let [t (map #({\I 1 \V 5 \X 10 \L 50 \C 100 \D 500 \M 1000} %) roman)]
    (loop [c (drop 1 t) x (first t) y (fnext t) d 0]
      (cond
        (nil? y) (+ d x)
        (>= x y) (recur (drop 1 c) y (fnext c) (+ d x))
        (< x y) (recur (drop 1 c) y (fnext c) (- d x))))))

Leave a Reply