Ethiopian multiplication: Difference between revisions

Content added Content deleted
(clojure impl)
Line 444: Line 444:
(iterate halve x)
(iterate halve x)
(iterate twice y)))))))
(iterate twice y)))))))

(defn emult2 [x y]
(loop [a x b y r 0]
(if (= a 1)
(+ r b)
(if (even a)
(recur (halve a) (twice b) r)
(recur (halve a) (twice b) (+ r b))))))
</lang>
</lang>